diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..5b6df9ab --- /dev/null +++ b/.gitignore @@ -0,0 +1,180 @@ +################# +## Eclipse +################# +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath +# External tool builders +.externalToolBuilders/ +# Locally stored "Eclipse launch configurations" +*.launch +# CDT-specific +.cproject +# PDT-specific +.buildpath +################# +## Visual Studio +################# +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +# User-specific files +*.suo +*.user +*.sln.docstates +# Build results +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile +# Visual Studio profiler +*.psess +*.vsp +*.vspx +# Guidance Automation Toolkit +*.gpState +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +# TeamCity is a build add-in +_TeamCity* +# DotCover is a Code Coverage Tool +*.dotCover +# NCrunch +*.ncrunch* +.*crunch*.local.xml +# Installshield output folder +[Ee]xpress/ +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html +# Click-Once directory +publish/ +# Publish Web Output +*.Publish.xml +*.pubxml +*.publishproj +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ +# Windows Azure Build Output +csx +*.build.csdef +# Windows Store app package directory +AppPackages/ +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings +# RIA/Silverlight projects +Generated_Code/ +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf +############# +## Windows detritus +############# +# Windows image file caches +Thumbs.db +ehthumbs.db +# Folder config file +Desktop.ini +# Recycle Bin used on file shares +$RECYCLE.BIN/ +# Mac crap +.DS_Store +############# +## Python +############# +*.py[cod] +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg +# Installer logs +pip-log.txt +# Unit test / coverage reports +.coverage +.tox +#Translations +*.mo +#Mr Developer +.mr.developer.cfg +.Rproj.user +.RData +.Rhistory +.sync.ffs_db +sync.ffs_db +R/dt2Urban.rda +R/dt2Rural.rda +IRHEIS.Rproj diff --git a/Data/Archive/Geo4.xlsx b/Data/Archive/Geo4.xlsx new file mode 100644 index 00000000..b13f60c1 Binary files /dev/null and b/Data/Archive/Geo4.xlsx differ diff --git a/Data/Archive/GeoInfo.Shahrestan.xlsx b/Data/Archive/GeoInfo.Shahrestan.xlsx new file mode 100644 index 00000000..9f47481d Binary files /dev/null and b/Data/Archive/GeoInfo.Shahrestan.xlsx differ diff --git a/Data/Archive/MetaData.bkp.xlsx b/Data/Archive/MetaData.bkp.xlsx new file mode 100644 index 00000000..acefc58f Binary files /dev/null and b/Data/Archive/MetaData.bkp.xlsx differ diff --git a/Data/Archive/MetaData2.xlsx b/Data/Archive/MetaData2.xlsx new file mode 100644 index 00000000..57676a33 Binary files /dev/null and b/Data/Archive/MetaData2.xlsx differ diff --git a/Data/CountyCodes8791/Y87ShCode.dta b/Data/CountyCodes8791/Y87ShCode.dta new file mode 100644 index 00000000..d845c79c Binary files /dev/null and b/Data/CountyCodes8791/Y87ShCode.dta differ diff --git a/Data/CountyCodes8791/Y87ShCode.rda b/Data/CountyCodes8791/Y87ShCode.rda new file mode 100644 index 00000000..17ce9590 Binary files /dev/null and b/Data/CountyCodes8791/Y87ShCode.rda differ diff --git a/Data/CountyCodes8791/Y88ShCode.dta b/Data/CountyCodes8791/Y88ShCode.dta new file mode 100644 index 00000000..5dde66a4 Binary files /dev/null and b/Data/CountyCodes8791/Y88ShCode.dta differ diff --git a/Data/CountyCodes8791/Y88ShCode.rda b/Data/CountyCodes8791/Y88ShCode.rda new file mode 100644 index 00000000..d1ada6a9 Binary files /dev/null and b/Data/CountyCodes8791/Y88ShCode.rda differ diff --git a/Data/CountyCodes8791/Y89ShCode.dta b/Data/CountyCodes8791/Y89ShCode.dta new file mode 100644 index 00000000..de27eecf Binary files /dev/null and b/Data/CountyCodes8791/Y89ShCode.dta differ diff --git a/Data/CountyCodes8791/Y89ShCode.rda b/Data/CountyCodes8791/Y89ShCode.rda new file mode 100644 index 00000000..21431a84 Binary files /dev/null and b/Data/CountyCodes8791/Y89ShCode.rda differ diff --git a/Data/CountyCodes8791/Y90ShCode.dta b/Data/CountyCodes8791/Y90ShCode.dta new file mode 100644 index 00000000..fab90a02 Binary files /dev/null and b/Data/CountyCodes8791/Y90ShCode.dta differ diff --git a/Data/CountyCodes8791/Y90ShCode.rda b/Data/CountyCodes8791/Y90ShCode.rda new file mode 100644 index 00000000..dd6d333d Binary files /dev/null and b/Data/CountyCodes8791/Y90ShCode.rda differ diff --git a/Data/CountyCodes8791/Y91ShCode.dta b/Data/CountyCodes8791/Y91ShCode.dta new file mode 100644 index 00000000..1f037c57 Binary files /dev/null and b/Data/CountyCodes8791/Y91ShCode.dta differ diff --git a/Data/CountyCodes8791/Y91ShCode.rda b/Data/CountyCodes8791/Y91ShCode.rda new file mode 100644 index 00000000..86f916b8 Binary files /dev/null and b/Data/CountyCodes8791/Y91ShCode.rda differ diff --git a/Data/D80Link.accdb b/Data/D80Link.accdb new file mode 100644 index 00000000..d1702fe7 Binary files /dev/null and b/Data/D80Link.accdb differ diff --git a/Data/MetaData.xlsx b/Data/MetaData.xlsx new file mode 100644 index 00000000..66494f87 Binary files /dev/null and b/Data/MetaData.xlsx differ diff --git a/Data/MetaDataFT.xlsx b/Data/MetaDataFT.xlsx new file mode 100644 index 00000000..198f7e9d Binary files /dev/null and b/Data/MetaDataFT.xlsx differ diff --git a/Data/MetaDatarev0.xlsx b/Data/MetaDatarev0.xlsx new file mode 100644 index 00000000..765920de Binary files /dev/null and b/Data/MetaDatarev0.xlsx differ diff --git a/Data/PriceCodes.xlsx b/Data/PriceCodes.xlsx new file mode 100644 index 00000000..a694afe5 Binary files /dev/null and b/Data/PriceCodes.xlsx differ diff --git a/Data/ProvinceCPI.xlsx b/Data/ProvinceCPI.xlsx new file mode 100644 index 00000000..a435739f Binary files /dev/null and b/Data/ProvinceCPI.xlsx differ diff --git a/Data/ProvinceFarsiNames.xlsx b/Data/ProvinceFarsiNames.xlsx new file mode 100644 index 00000000..65ccefc9 Binary files /dev/null and b/Data/ProvinceFarsiNames.xlsx differ diff --git a/Data/SamplingWeights/HHWeights76.rda b/Data/SamplingWeights/HHWeights76.rda new file mode 100644 index 00000000..0c7aaa33 Binary files /dev/null and b/Data/SamplingWeights/HHWeights76.rda differ diff --git a/Data/SamplingWeights/HHWeights77.rda b/Data/SamplingWeights/HHWeights77.rda new file mode 100644 index 00000000..ff2629c5 Binary files /dev/null and b/Data/SamplingWeights/HHWeights77.rda differ diff --git a/Data/SamplingWeights/HHWeights78.rda b/Data/SamplingWeights/HHWeights78.rda new file mode 100644 index 00000000..e79af124 Binary files /dev/null and b/Data/SamplingWeights/HHWeights78.rda differ diff --git a/Data/SamplingWeights/HHWeights79.rda b/Data/SamplingWeights/HHWeights79.rda new file mode 100644 index 00000000..fa923628 Binary files /dev/null and b/Data/SamplingWeights/HHWeights79.rda differ diff --git a/Data/SamplingWeights/HHWeights80.rda b/Data/SamplingWeights/HHWeights80.rda new file mode 100644 index 00000000..59f63e6e Binary files /dev/null and b/Data/SamplingWeights/HHWeights80.rda differ diff --git a/Data/SamplingWeights/HHWeights81.rda b/Data/SamplingWeights/HHWeights81.rda new file mode 100644 index 00000000..7be16083 Binary files /dev/null and b/Data/SamplingWeights/HHWeights81.rda differ diff --git a/Data/SamplingWeights/HHWeights82.rda b/Data/SamplingWeights/HHWeights82.rda new file mode 100644 index 00000000..89ae3464 Binary files /dev/null and b/Data/SamplingWeights/HHWeights82.rda differ diff --git a/Data/SamplingWeights/HHWeights83.rda b/Data/SamplingWeights/HHWeights83.rda new file mode 100644 index 00000000..f1f776c5 Binary files /dev/null and b/Data/SamplingWeights/HHWeights83.rda differ diff --git a/Data/SamplingWeights/HHWeights84.rda b/Data/SamplingWeights/HHWeights84.rda new file mode 100644 index 00000000..1a666f2a Binary files /dev/null and b/Data/SamplingWeights/HHWeights84.rda differ diff --git a/Data/SamplingWeights/HHWeights85.rda b/Data/SamplingWeights/HHWeights85.rda new file mode 100644 index 00000000..e3098065 Binary files /dev/null and b/Data/SamplingWeights/HHWeights85.rda differ diff --git a/Data/SamplingWeights/HHWeights86.rda b/Data/SamplingWeights/HHWeights86.rda new file mode 100644 index 00000000..6f22fe6c Binary files /dev/null and b/Data/SamplingWeights/HHWeights86.rda differ diff --git a/Data/SamplingWeights/HHWeights87.rda b/Data/SamplingWeights/HHWeights87.rda new file mode 100644 index 00000000..800f6701 Binary files /dev/null and b/Data/SamplingWeights/HHWeights87.rda differ diff --git a/Data/SamplingWeights/HHWeights88.rda b/Data/SamplingWeights/HHWeights88.rda new file mode 100644 index 00000000..32102d1b Binary files /dev/null and b/Data/SamplingWeights/HHWeights88.rda differ diff --git a/Data/SamplingWeights/HHWeights89.rda b/Data/SamplingWeights/HHWeights89.rda new file mode 100644 index 00000000..1fcc4361 Binary files /dev/null and b/Data/SamplingWeights/HHWeights89.rda differ diff --git a/Data/SamplingWeights/HHWeights90.rda b/Data/SamplingWeights/HHWeights90.rda new file mode 100644 index 00000000..e26d61f1 Binary files /dev/null and b/Data/SamplingWeights/HHWeights90.rda differ diff --git a/Data/SamplingWeights/HHWeights91.rda b/Data/SamplingWeights/HHWeights91.rda new file mode 100644 index 00000000..33835000 Binary files /dev/null and b/Data/SamplingWeights/HHWeights91.rda differ diff --git a/Data/SamplingWeights/HHWeights92.rda b/Data/SamplingWeights/HHWeights92.rda new file mode 100644 index 00000000..b58bd87f Binary files /dev/null and b/Data/SamplingWeights/HHWeights92.rda differ diff --git a/Data/SamplingWeights/HHWeights93.rda b/Data/SamplingWeights/HHWeights93.rda new file mode 100644 index 00000000..1255b49d Binary files /dev/null and b/Data/SamplingWeights/HHWeights93.rda differ diff --git a/Data/SamplingWeights/HHWeights94.rda b/Data/SamplingWeights/HHWeights94.rda new file mode 100644 index 00000000..902f5996 Binary files /dev/null and b/Data/SamplingWeights/HHWeights94.rda differ diff --git a/Data/SamplingWeights/HHWeights95.rda b/Data/SamplingWeights/HHWeights95.rda new file mode 100644 index 00000000..5efb6f59 Binary files /dev/null and b/Data/SamplingWeights/HHWeights95.rda differ diff --git a/Data/SamplingWeights/HHWeights96.rda b/Data/SamplingWeights/HHWeights96.rda new file mode 100644 index 00000000..6df34d6a Binary files /dev/null and b/Data/SamplingWeights/HHWeights96.rda differ diff --git a/Data/SamplingWeights/HHWeights97.rda b/Data/SamplingWeights/HHWeights97.rda new file mode 100644 index 00000000..f6d922b8 Binary files /dev/null and b/Data/SamplingWeights/HHWeights97.rda differ diff --git a/Data/SamplingWeights/HHWeights98.rda b/Data/SamplingWeights/HHWeights98.rda new file mode 100644 index 00000000..28098431 Binary files /dev/null and b/Data/SamplingWeights/HHWeights98.rda differ diff --git a/Data/SamplingWeights/HHWeights99.rda b/Data/SamplingWeights/HHWeights99.rda new file mode 100644 index 00000000..0742452c Binary files /dev/null and b/Data/SamplingWeights/HHWeights99.rda differ diff --git a/Data/SamplingWeights/readme.md b/Data/SamplingWeights/readme.md new file mode 100644 index 00000000..311c4342 --- /dev/null +++ b/Data/SamplingWeights/readme.md @@ -0,0 +1,25 @@ +# SamplingWeights +provides sampling weights of all households in samples from 1376 onward. Weights data are extracted from "Summary" files provided by SCI. Sampling weights for years before 1376 are not provided by SCI, a rough estimate can be based on rural and urban population of each province or rural and urban population of the country (these files do not include such estimates). + + +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights76.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights77.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights78.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights79.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights80.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights81.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights82.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights83.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights84.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights85.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights86.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights87.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights88.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights89.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights90.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights91.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights92.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights93.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights94.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights95.rda +https://github.com/IPRCIRI/IRHEIS/raw/master/Data/SamplingWeights/HHWeights96.rda diff --git a/Data/inflation.xlsx b/Data/inflation.xlsx new file mode 100644 index 00000000..6f5fdc71 Binary files /dev/null and b/Data/inflation.xlsx differ diff --git a/Data/readme.md b/Data/readme.md new file mode 100644 index 00000000..3ed39e6b --- /dev/null +++ b/Data/readme.md @@ -0,0 +1,13 @@ +# Data +This folder contains data that are needed to process Iranian Household Expenditures and Income Surveys data. +Provided folders and files are described below. + +SamplingWeights provides sampling weights of all households in samples from 1376 onward. +Weights data are extracted from "Summary" files provided by SCI. +Sampling weights for years before 1376 are not provided by SCI, a rough estimated can be based on rural and urban population of each province or rural and urban population of the country (these files do not include such estimates). + +D80Link.accdb provides linked tables to 1380 data with abnormal table names. + +GeoInfo.Shahrestan.xlsx file provides information on administrative areas of Iran in levels of Shahrestan (County). + +MetaData.xlsx provides all metadata information related to the surveys. diff --git a/IranProvinceMap/Data/GeoData.xlsx b/IranProvinceMap/Data/GeoData.xlsx new file mode 100644 index 00000000..fe69991a Binary files /dev/null and b/IranProvinceMap/Data/GeoData.xlsx differ diff --git a/IranProvinceMap/IranProvinceMap.Rproj b/IranProvinceMap/IranProvinceMap.Rproj new file mode 100644 index 00000000..b42a3ccb --- /dev/null +++ b/IranProvinceMap/IranProvinceMap.Rproj @@ -0,0 +1,16 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: knitr +LaTeX: XeLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes diff --git a/IranProvinceMap/PlotDataMaps.R b/IranProvinceMap/PlotDataMaps.R new file mode 100644 index 00000000..3a107300 --- /dev/null +++ b/IranProvinceMap/PlotDataMaps.R @@ -0,0 +1,46 @@ +rm(list=ls()) + +library(data.table) +library(readxl) +library(rworldmap) +library(rgdal) + + +GeP <- data.table(read_excel("Data/GeoData.xlsx","Province")) # Data to be plotted, see the excell file + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(GeP, # Joining the data to map + nameMap="ProvMap", + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "PopDensity", + colourPalette = "heat", + mapTitle = paste0("Population Density"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) + diff --git a/IranProvinceMap/Shapefiles/1385/Bakhsh.dbf b/IranProvinceMap/Shapefiles/1385/Bakhsh.dbf new file mode 100644 index 00000000..efd2feec Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Bakhsh.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Bakhsh.prj b/IranProvinceMap/Shapefiles/1385/Bakhsh.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Bakhsh.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Bakhsh.sbn b/IranProvinceMap/Shapefiles/1385/Bakhsh.sbn new file mode 100644 index 00000000..059c21fc Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Bakhsh.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Bakhsh.sbx b/IranProvinceMap/Shapefiles/1385/Bakhsh.sbx new file mode 100644 index 00000000..425a00cd Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Bakhsh.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Bakhsh.shp b/IranProvinceMap/Shapefiles/1385/Bakhsh.shp new file mode 100644 index 00000000..c87692f7 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Bakhsh.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Bakhsh.shx b/IranProvinceMap/Shapefiles/1385/Bakhsh.shx new file mode 100644 index 00000000..8eb64078 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Bakhsh.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/City.dbf b/IranProvinceMap/Shapefiles/1385/City.dbf new file mode 100644 index 00000000..01c306a7 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/City.prj b/IranProvinceMap/Shapefiles/1385/City.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/City.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/City.sbn b/IranProvinceMap/Shapefiles/1385/City.sbn new file mode 100644 index 00000000..ee33a5de Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/City.sbx b/IranProvinceMap/Shapefiles/1385/City.sbx new file mode 100644 index 00000000..e6293c09 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/City.shp b/IranProvinceMap/Shapefiles/1385/City.shp new file mode 100644 index 00000000..5d96e96a Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/City.shp.xml b/IranProvinceMap/Shapefiles/1385/City.shp.xml new file mode 100644 index 00000000..05d4a65b --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/City.shp.xml @@ -0,0 +1,3 @@ + + +2006120314391500FALSE20061129115415002006112911541500Erase City2 Dehestan "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\New Folder\City6.shp" "0.000000 Millimeters"{BB5A9C18-76CE-494D-BD5F-927F32F5C157}\\JAMSHID\D$\works\tagsimat_sh\shape_tag_t.84\fainal_database\new folder\CityCopyREQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.City6City6vector digital dataMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 2, v.2055; ESRI ArcCatalog 9.0.0.535faREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.Shapefilefile://\\JAMSHID\D$\works\tagsimat_sh\shape_tag_t.84\fainal_database\new folder\CityCopyLocal Area Network0020.000ShapefileDataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\City_n120061021Dataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\es_fainal_database\City_n120061108Dataset copied.20061129Dataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\New Folder\City20061203Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 2, v.2055; ESRI ArcCatalog 9.0.0.535City6faFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20061129ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000VectorSimplePolygonFALSE0FALSEFALSEG-polygon0GCS_WGS_1984Lambert of IRANLambert Conformal Conic30.00000036.00000054.00000024.0000000.0000000.000000coordinate pairmeters0.0010990.001099D_WGS_1984WGS_19846378137.000000298.257224Lambert of IRAN0City6Feature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.OSTAN_NAMOSTAN_NAMString50SHAHR_NAMSHAHR_NAMString50SHAHR_ENGSHAHR_ENGString5020061129 diff --git a/IranProvinceMap/Shapefiles/1385/City.shx b/IranProvinceMap/Shapefiles/1385/City.shx new file mode 100644 index 00000000..9af8b35f Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/City_Point.dbf b/IranProvinceMap/Shapefiles/1385/City_Point.dbf new file mode 100644 index 00000000..6b34760a Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City_Point.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/City_Point.prj b/IranProvinceMap/Shapefiles/1385/City_Point.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/City_Point.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/City_Point.sbn b/IranProvinceMap/Shapefiles/1385/City_Point.sbn new file mode 100644 index 00000000..e26e2e35 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City_Point.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/City_Point.sbx b/IranProvinceMap/Shapefiles/1385/City_Point.sbx new file mode 100644 index 00000000..5f0c5371 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City_Point.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/City_Point.shp b/IranProvinceMap/Shapefiles/1385/City_Point.shp new file mode 100644 index 00000000..e79f24b7 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City_Point.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/City_Point.shp.xml b/IranProvinceMap/Shapefiles/1385/City_Point.shp.xml new file mode 100644 index 00000000..680f63e5 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/City_Point.shp.xml @@ -0,0 +1,3 @@ + + +2007010314203000TRUECreateFeatureclass "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\Nezarat_ Geodatabase.mdb\nezarat_85" City_Point # City_Point_Layer SAME_AS_TEMPLATE SAME_AS_TEMPLATE "PROJCS['Lambert of IRAN',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',54.0],PARAMETER['Standard_Parallel_1',30.0],PARAMETER['Standard_Parallel_2',36.0],PARAMETER['Latitude_Of_Origin',24.0],UNIT['Meter',1.0]];-4365026.918150 -3430792.895406 244.140625;0.000000 100000.000000;0.000000 100000.000000" # 0 0 0 "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\Nezarat_ Geodatabase.mdb\nezarat_85\City_Point"Append City_Point_Layer "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\Nezarat_ Geodatabase.mdb\nezarat_85\City_Point" TEST "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\Nezarat_ Geodatabase.mdb\nezarat_85\City_Point"FeatureClassToFeatureClass "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\country division_asli.mdb\division\City_Point" "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\Nezarat_ Geodatabase.mdb\nezarat_85" City_Point # "OBJECTID OBJECTID VISIBLE;GeoName GeoName VISIBLE;Landa Landa VISIBLE;Fie Fie VISIBLE;Height Height VISIBLE;K_sheet_ K_sheet_ VISIBLE;OSTAN_NAM OSTAN_NAM VISIBLE" SAME_AS_TEMPLATE SAME_AS_TEMPLATE # 0 "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\Nezarat_ Geodatabase.mdb\nezarat_85\City_Point"{DF6BC0C1-8AB1-4E3B-B56D-0CA74D54D2E3}file://Local Area NetworkDataset copied.\\JAMSHID\D$\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\Nezarat_ Geodatabase.mdb20070103 diff --git a/IranProvinceMap/Shapefiles/1385/City_Point.shx b/IranProvinceMap/Shapefiles/1385/City_Point.shx new file mode 100644 index 00000000..c7289a8d Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/City_Point.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Dehestan.dbf b/IranProvinceMap/Shapefiles/1385/Dehestan.dbf new file mode 100644 index 00000000..37a4a370 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Dehestan.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Dehestan.prj b/IranProvinceMap/Shapefiles/1385/Dehestan.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Dehestan.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Dehestan.sbn b/IranProvinceMap/Shapefiles/1385/Dehestan.sbn new file mode 100644 index 00000000..a0d10bed Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Dehestan.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Dehestan.sbx b/IranProvinceMap/Shapefiles/1385/Dehestan.sbx new file mode 100644 index 00000000..9fa42df9 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Dehestan.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Dehestan.shp b/IranProvinceMap/Shapefiles/1385/Dehestan.shp new file mode 100644 index 00000000..588204b3 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Dehestan.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Dehestan.shp.xml b/IranProvinceMap/Shapefiles/1385/Dehestan.shp.xml new file mode 100644 index 00000000..775ad338 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Dehestan.shp.xml @@ -0,0 +1,3 @@ + + +{25EBFAFA-63EC-4D89-868B-9935570A1FD0}2006120313305800TRUECreateFeatureclass "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\New Folder" Dehestan # dehestan_Layer SAME_AS_TEMPLATE SAME_AS_TEMPLATE "PROJCS['Lambert of IRAN',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',54.0],PARAMETER['Standard_Parallel_1',30.0],PARAMETER['Standard_Parallel_2',36.0],PARAMETER['Latitude_Of_Origin',24.0],UNIT['Meter',1.0]];-4365026.918150 -3430792.895406 244.140625;0.000000 100000.000000;0.000000 100000.000000" # 0 0 0 "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\New Folder\Dehestan.shp"Append dehestan_Layer "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\New Folder\Dehestan.shp" TEST "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\New Folder\Dehestan.shp"FeatureClassToFeatureClass "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\country division_asli.mdb\division\dehestan" "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\New Folder" Dehestan # "NEW_REGION NEW_REGION VISIBLE;OSTAN_COD OSTAN_COD VISIBLE;SHAHR_COD SHAHR_COD VISIBLE;BAKHSH_COD BAKHSH_COD VISIBLE;DEH_COD DEH_COD VISIBLE;REGION_NAM REGION_NAM VISIBLE;CENTER_NAM CENTER_NAM VISIBLE;CENTER_ENG CENTER_ENG VISIBLE;OSTAN_NAM OSTAN_NAM VISIBLE;SHAHR_NAM SHAHR_NAM VISIBLE;BAKHSH_NAM BAKHSH_NAM VISIBLE;DEH_NAM DEH_NAM VISIBLE;DEH_ENG DEH_ENG VISIBLE;REGION_ENG REGION_ENG VISIBLE;OSTAN_ENG OSTAN_ENG VISIBLE;SHAHR_ENG SHAHR_ENG VISIBLE;BAKHSH_ENG BAKHSH_ENG VISIBLE;REGION_COD REGION_COD VISIBLE;Shape_Length Shape_Leng VISIBLE;Shape_Area Shape_Area VISIBLE" SAME_AS_TEMPLATE SAME_AS_TEMPLATE # 0 "D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\New Folder\Dehestan.shp" diff --git a/IranProvinceMap/Shapefiles/1385/Dehestan.shx b/IranProvinceMap/Shapefiles/1385/Dehestan.shx new file mode 100644 index 00000000..9c5a062d Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Dehestan.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Jazayer.dbf b/IranProvinceMap/Shapefiles/1385/Jazayer.dbf new file mode 100644 index 00000000..bf3b5ebd Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Jazayer.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Jazayer.prj b/IranProvinceMap/Shapefiles/1385/Jazayer.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Jazayer.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Jazayer.sbn b/IranProvinceMap/Shapefiles/1385/Jazayer.sbn new file mode 100644 index 00000000..bc78d525 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Jazayer.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Jazayer.sbx b/IranProvinceMap/Shapefiles/1385/Jazayer.sbx new file mode 100644 index 00000000..115e5a51 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Jazayer.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Jazayer.shp b/IranProvinceMap/Shapefiles/1385/Jazayer.shp new file mode 100644 index 00000000..24456ced Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Jazayer.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Jazayer.shp.xml b/IranProvinceMap/Shapefiles/1385/Jazayer.shp.xml new file mode 100644 index 00000000..04d8891d --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Jazayer.shp.xml @@ -0,0 +1,3 @@ + + +2006120314074200FALSEDefineProjection D:\ASLI\base\shape_tag_83\fainal_8\jazayer.shp PROJCS['Lambert of IRAN',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',54.0],PARAMETER['Standard_Parallel_1',30.0],PARAMETER['Standard_Parallel_2',36.0],PARAMETER['Latitude_Of_Origin',24.0],UNIT['Meter',1.0]] D:\ASLI\base\shape_tag_83\fainal_8\jazayer.shp20060725184807002006072518480700{BA8E0873-D607-42BD-8204-6B28B7D130E5}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 1; ESRI ArcCatalog 9.0.0.535faREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.jazayerjazayervector digital data\\JAMSHID\D$\works\tagsimat_sh\shape_tag_t.84\fainal_database\new folder\JazayerREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.45.22358156.84321338.42112425.119266-770645.575185249139.390000152941.6500001601695.502221REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 1; ESRI ArcCatalog 9.0.0.535jazayer-770645.575185249139.391601695.502221152941.65145.22358156.84321338.42112425.1192661faFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20060725ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0450.045002file://\\JAMSHID\D$\works\tagsimat_sh\shape_tag_t.84\fainal_database\new folder\JazayerLocal Area Network0.045ShapefileVectorSimplePolygonFALSE52TRUEFALSEG-polygon52GCS_WGS_1984Lambert of IRANLambert Conformal Conic30.00000036.00000054.00000024.0000000.0000000.000000coordinate pairmeters0.0020480.002048D_WGS_1984WGS_19846378137.000000298.257224Lambert of IRAN52jazayerFeature Class52FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.OSTAN_NOSTAN_NString30SHAHR_NSHAHR_NString30BAKHSH_NBAKHSH_NString30DEH_NDEH_NString30REGION_CODREGION_CODNumber8NEW_REGIONNEW_REGIONNumber8ISLAND__NISLAND__NString35ISLAND_EISLAND_EString35AreaAreaFloat191120060725Dataset copied.20061107Dataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\es_fainal_database\Jazayer20061108Dataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\Jazayer20061203 diff --git a/IranProvinceMap/Shapefiles/1385/Jazayer.shx b/IranProvinceMap/Shapefiles/1385/Jazayer.shx new file mode 100644 index 00000000..aaa2c2de Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Jazayer.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Lake.dbf b/IranProvinceMap/Shapefiles/1385/Lake.dbf new file mode 100644 index 00000000..e273804f Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Lake.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Lake.prj b/IranProvinceMap/Shapefiles/1385/Lake.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Lake.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Lake.sbn b/IranProvinceMap/Shapefiles/1385/Lake.sbn new file mode 100644 index 00000000..114ce65f Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Lake.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Lake.sbx b/IranProvinceMap/Shapefiles/1385/Lake.sbx new file mode 100644 index 00000000..c19699a4 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Lake.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Lake.shp b/IranProvinceMap/Shapefiles/1385/Lake.shp new file mode 100644 index 00000000..2e398d64 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Lake.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Lake.shp.xml b/IranProvinceMap/Shapefiles/1385/Lake.shp.xml new file mode 100644 index 00000000..e07b2887 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Lake.shp.xml @@ -0,0 +1,3 @@ + + +2006120314071100TRUEDefineProjection D:\ASLI\base\shape_tag_83\fainal_8\lake&see.shp PROJCS['Lambert of IRAN',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',54.0],PARAMETER['Standard_Parallel_1',30.0],PARAMETER['Standard_Parallel_2',36.0],PARAMETER['Latitude_Of_Origin',24.0],UNIT['Meter',1.0]] D:\ASLI\base\shape_tag_83\fainal_8\lake&see.shp{427517CB-15AD-4E02-9AE5-335F5F2AD70F}\\JAMSHID\D$\works\tagsimat_sh\shape_tag_t.84\fainal_database\new folder\Lakefile://\\JAMSHID\D$\works\tagsimat_sh\shape_tag_t.84\fainal_database\new folder\LakeLocal Area NetworkDataset copied.20061022Dataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\es_fainal_database\Lake&See20061108Dataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\Lake20061203 diff --git a/IranProvinceMap/Shapefiles/1385/Lake.shx b/IranProvinceMap/Shapefiles/1385/Lake.shx new file mode 100644 index 00000000..bd30b783 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Lake.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Marsh.dbf b/IranProvinceMap/Shapefiles/1385/Marsh.dbf new file mode 100644 index 00000000..4008e3d0 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Marsh.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Marsh.prj b/IranProvinceMap/Shapefiles/1385/Marsh.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Marsh.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Marsh.sbn b/IranProvinceMap/Shapefiles/1385/Marsh.sbn new file mode 100644 index 00000000..6811af95 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Marsh.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Marsh.sbx b/IranProvinceMap/Shapefiles/1385/Marsh.sbx new file mode 100644 index 00000000..4a3ec79b Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Marsh.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Marsh.shp b/IranProvinceMap/Shapefiles/1385/Marsh.shp new file mode 100644 index 00000000..49c556bd Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Marsh.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Marsh.shp.xml b/IranProvinceMap/Shapefiles/1385/Marsh.shp.xml new file mode 100644 index 00000000..6077128b --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Marsh.shp.xml @@ -0,0 +1,3 @@ + + +2006120314081800TRUE{A4E1682F-AC8B-44CD-BC1C-62CE99393CC7}\\JAMSHID\D$\works\tagsimat_sh\shape_tag_t.84\fainal_database\new folder\Marshfile://\\JAMSHID\D$\works\tagsimat_sh\shape_tag_t.84\fainal_database\new folder\MarshLocal Area NetworkDataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\Marsh20061203 diff --git a/IranProvinceMap/Shapefiles/1385/Marsh.shx b/IranProvinceMap/Shapefiles/1385/Marsh.shx new file mode 100644 index 00000000..f7c57ed0 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Marsh.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan.dbf b/IranProvinceMap/Shapefiles/1385/Ostan.dbf new file mode 100644 index 00000000..16594902 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan.prj b/IranProvinceMap/Shapefiles/1385/Ostan.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Ostan.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Ostan.sbn b/IranProvinceMap/Shapefiles/1385/Ostan.sbn new file mode 100644 index 00000000..7a03fc02 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan.sbx b/IranProvinceMap/Shapefiles/1385/Ostan.sbx new file mode 100644 index 00000000..02fec3a4 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan.shp b/IranProvinceMap/Shapefiles/1385/Ostan.shp new file mode 100644 index 00000000..430b93d4 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan.shx b/IranProvinceMap/Shapefiles/1385/Ostan.shx new file mode 100644 index 00000000..b8849056 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Clip.dbf b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.dbf new file mode 100644 index 00000000..19cff3e9 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Clip.prj b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Clip.sbn b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.sbn new file mode 100644 index 00000000..ec1155da Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Clip.sbx b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.sbx new file mode 100644 index 00000000..d7d4e1b6 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shp b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shp new file mode 100644 index 00000000..7be6fb1d Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shp.xml b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shp.xml new file mode 100644 index 00000000..cfa8db6e --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shp.xml @@ -0,0 +1,3 @@ + + +{9086CD6C-45DB-4568-845B-2E4F42CE288C}2008100800055100FALSE20081008000552002008100800055200Clip Ostan kavir-la "E:\ir\project\IRAN-DISTRIBUTE\taghsimat on KhadamatFanni (Salajegheh)\SHAPEFILE\1385\Ostan_Clip.shp" #Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 2; ESRI ArcCatalog 9.2.0.1324faREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.Ostan_ClipOstan_Clipvector digital data\\DOE-8B14B1C769B\E$\ir\project\IRAN-DISTRIBUTE\taghsimat on KhadamatFanni (Salajegheh)\SHAPEFILE\1385\Ostan_Clip.shpREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 2; ESRI ArcCatalog 9.2.0.1324Ostan_ClipfaFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20081008ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://\\DOE-8B14B1C769B\E$\ir\project\IRAN-DISTRIBUTE\taghsimat on KhadamatFanni (Salajegheh)\SHAPEFILE\1385\Ostan_Clip.shpLocal Area Network0.000ShapefileVectorSimplePolygonFALSE0FALSEFALSEG-polygon0GCS_WGS_1984Lambert of IRANLambert Conformal Conic30.00000036.00000054.00000024.0000000.0000000.000000coordinate pairmeters0.0000000.000000D_WGS_1984WGS_19846378137.000000298.257224Lambert of IRAN0Ostan_ClipFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.CENTER_NAMCENTER_NAMString50OSTAN_NAMOSTAN_NAMString50OSTAN_ENGOSTAN_ENGString50CNT_DEHCNT_DEHNumber4CNT_BAKHSHCNT_BAKHSHNumber4CNT_SHAHRCNT_SHAHRNumber420081008 diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shx b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shx new file mode 100644 index 00000000..09f90b04 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Clip.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Project.dbf b/IranProvinceMap/Shapefiles/1385/Ostan_Project.dbf new file mode 100644 index 00000000..a6f3d40a Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Project.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Project.prj b/IranProvinceMap/Shapefiles/1385/Ostan_Project.prj new file mode 100644 index 00000000..1c9090f8 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Ostan_Project.prj @@ -0,0 +1 @@ +PROJCS["World_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Project.sbn b/IranProvinceMap/Shapefiles/1385/Ostan_Project.sbn new file mode 100644 index 00000000..93af5fc7 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Project.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Project.sbx b/IranProvinceMap/Shapefiles/1385/Ostan_Project.sbx new file mode 100644 index 00000000..b3ba14ec Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Project.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Project.shp b/IranProvinceMap/Shapefiles/1385/Ostan_Project.shp new file mode 100644 index 00000000..408db546 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Project.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Project.shp.xml b/IranProvinceMap/Shapefiles/1385/Ostan_Project.shp.xml new file mode 100644 index 00000000..d4123875 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Ostan_Project.shp.xml @@ -0,0 +1,3 @@ + + +{3AF31CAC-EF1B-4C5B-8C82-11D08882DEB9}2008112123274700TRUEProject Ostan "C:\job\DR.HASHEMI\taghsimat on KhadamatFanni (Salajegheh)\SHAPEFILE\1385\Ostan_Project.shp" PROJCS['World_Mercator',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Mercator'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',0.0],PARAMETER['Standard_Parallel_1',0.0],UNIT['Meter',1.0]] # PROJCS['Lambert of IRAN',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',54.0],PARAMETER['Standard_Parallel_1',30.0],PARAMETER['Standard_Parallel_2',36.0],PARAMETER['Latitude_Of_Origin',24.0],UNIT['Meter',1.0]] diff --git a/IranProvinceMap/Shapefiles/1385/Ostan_Project.shx b/IranProvinceMap/Shapefiles/1385/Ostan_Project.shx new file mode 100644 index 00000000..b0402ac3 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Ostan_Project.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Sea.dbf b/IranProvinceMap/Shapefiles/1385/Sea.dbf new file mode 100644 index 00000000..6152efc3 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Sea.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Sea.prj b/IranProvinceMap/Shapefiles/1385/Sea.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Sea.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Sea.sbn b/IranProvinceMap/Shapefiles/1385/Sea.sbn new file mode 100644 index 00000000..bb036474 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Sea.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Sea.sbx b/IranProvinceMap/Shapefiles/1385/Sea.sbx new file mode 100644 index 00000000..2c0e8dc7 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Sea.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Sea.shp b/IranProvinceMap/Shapefiles/1385/Sea.shp new file mode 100644 index 00000000..010b10c2 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Sea.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Sea.shp.xml b/IranProvinceMap/Shapefiles/1385/Sea.shp.xml new file mode 100644 index 00000000..839d8060 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Sea.shp.xml @@ -0,0 +1,3 @@ + + +2006120913472700FALSEDefineProjection D:\ASLI\base\shape_tag_83\fainal_8\lake&see.shp PROJCS['Lambert of IRAN',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',54.0],PARAMETER['Standard_Parallel_1',30.0],PARAMETER['Standard_Parallel_2',36.0],PARAMETER['Latitude_Of_Origin',24.0],UNIT['Meter',1.0]] D:\ASLI\base\shape_tag_83\fainal_8\lake&see.shpErase See test D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_nez\See1.shp "0.000010 Meters"20061206110848002006120611084800{EA84FE8F-6D40-4C45-A786-0B64C732D462}REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.See1See1vector digital dataMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 2, v.2055; ESRI ArcCatalog 9.0.0.535faREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.Shapefilefile://Local Area Network0020.000ShapefileDataset copied.20061022Dataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\es_fainal_database\Lake&See20061108Dataset copied.20061127Dataset copied.D:\WORKS\Tagsimat_sh\shape_tag_t.84\Fainal_database\See20061203Dataset copied.20061209Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 2, v.2055; ESRI ArcCatalog 9.0.0.535See1faFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20061206ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000VectorSimplePolygonFALSE0FALSEFALSEG-polygon0GCS_WGS_1984Lambert of IRANLambert Conformal Conic30.00000036.00000054.00000024.0000000.0000000.000000coordinate pairmeters0.0008390.000839D_WGS_1984WGS_19846378137.000000298.257224Lambert of IRAN0See1Feature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.NAMENAMEString35LATIN_NAMELATIN_NAMEString40AreaAreaNumber191120061206 diff --git a/IranProvinceMap/Shapefiles/1385/Sea.shx b/IranProvinceMap/Shapefiles/1385/Sea.shx new file mode 100644 index 00000000..9db61d26 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Sea.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/Shahrestan.dbf b/IranProvinceMap/Shapefiles/1385/Shahrestan.dbf new file mode 100644 index 00000000..0d387ac4 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Shahrestan.dbf differ diff --git a/IranProvinceMap/Shapefiles/1385/Shahrestan.prj b/IranProvinceMap/Shapefiles/1385/Shahrestan.prj new file mode 100644 index 00000000..3649b770 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/Shahrestan.prj @@ -0,0 +1 @@ +PROJCS["Lambert of IRAN",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1385/Shahrestan.sbn b/IranProvinceMap/Shapefiles/1385/Shahrestan.sbn new file mode 100644 index 00000000..786e06ee Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Shahrestan.sbn differ diff --git a/IranProvinceMap/Shapefiles/1385/Shahrestan.sbx b/IranProvinceMap/Shapefiles/1385/Shahrestan.sbx new file mode 100644 index 00000000..e957caeb Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Shahrestan.sbx differ diff --git a/IranProvinceMap/Shapefiles/1385/Shahrestan.shp b/IranProvinceMap/Shapefiles/1385/Shahrestan.shp new file mode 100644 index 00000000..6fb51b6f Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Shahrestan.shp differ diff --git a/IranProvinceMap/Shapefiles/1385/Shahrestan.shx b/IranProvinceMap/Shapefiles/1385/Shahrestan.shx new file mode 100644 index 00000000..99a44715 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1385/Shahrestan.shx differ diff --git a/IranProvinceMap/Shapefiles/1385/nd.dbg b/IranProvinceMap/Shapefiles/1385/nd.dbg new file mode 100644 index 00000000..8fc3bb0f --- /dev/null +++ b/IranProvinceMap/Shapefiles/1385/nd.dbg @@ -0,0 +1,9 @@ + +------------------- TRACEBACK ------------------------- +Module "Err " Message 4: file ".\err.c " line 1547 +Module "Script" Message -1: file "..\avenue\script.c" line 151 +Module "Event" Message -1: file ".\event.c " line 2594 +Module "Appl " Message -1: file "..\appl\appl.c" line 1912 +Module "Err " Message -1: file ".\err.c " line 2009 +------------------------------------------------------- +FATAL ERROR Failure during error recovery diff --git a/IranProvinceMap/Shapefiles/1390/os.dbf b/IranProvinceMap/Shapefiles/1390/os.dbf new file mode 100644 index 00000000..3ac9e3ac Binary files /dev/null and b/IranProvinceMap/Shapefiles/1390/os.dbf differ diff --git a/IranProvinceMap/Shapefiles/1390/os.prj b/IranProvinceMap/Shapefiles/1390/os.prj new file mode 100644 index 00000000..54eabe9a --- /dev/null +++ b/IranProvinceMap/Shapefiles/1390/os.prj @@ -0,0 +1 @@ +PROJCS["lamiran",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1390/os.sbn b/IranProvinceMap/Shapefiles/1390/os.sbn new file mode 100644 index 00000000..83587b33 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1390/os.sbn differ diff --git a/IranProvinceMap/Shapefiles/1390/os.sbx b/IranProvinceMap/Shapefiles/1390/os.sbx new file mode 100644 index 00000000..434dcf20 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1390/os.sbx differ diff --git a/IranProvinceMap/Shapefiles/1390/os.shp b/IranProvinceMap/Shapefiles/1390/os.shp new file mode 100644 index 00000000..1d66aa19 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1390/os.shp differ diff --git a/IranProvinceMap/Shapefiles/1390/os.shp.xml b/IranProvinceMap/Shapefiles/1390/os.shp.xml new file mode 100644 index 00000000..514764c6 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1390/os.shp.xml @@ -0,0 +1,3 @@ + + +2011060404362300TRUEDefineProjection ostan PROJCS['WGS_1984_UTM_Zone_38N',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',45.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] ostanDefineProjection os PROJCS['lamiran',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',54.0],PARAMETER['Standard_Parallel_1',30.0],PARAMETER['Standard_Parallel_2',36.0],PARAMETER['Scale_Factor',1.0],PARAMETER['Latitude_Of_Origin',24.0],UNIT['Meter',1.0]] os{6298A354-90A0-4E97-BB78-3CA197B50E61}\\HASSAN-PC\H$\GIS\v_keshvar\ostan layer\osfile://\\HASSAN-PC\H$\GIS\v_keshvar\ostan layer\osLocal Area NetworkDataset copied.2010090514122100Dataset copied.H:\GIS\v_keshvar\os2011060404362300 diff --git a/IranProvinceMap/Shapefiles/1390/os.shx b/IranProvinceMap/Shapefiles/1390/os.shx new file mode 100644 index 00000000..8829b3b2 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1390/os.shx differ diff --git a/IranProvinceMap/Shapefiles/1392/ostan_1392.dbf b/IranProvinceMap/Shapefiles/1392/ostan_1392.dbf new file mode 100644 index 00000000..ff522225 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1392/ostan_1392.dbf differ diff --git a/IranProvinceMap/Shapefiles/1392/ostan_1392.prj b/IranProvinceMap/Shapefiles/1392/ostan_1392.prj new file mode 100644 index 00000000..54eabe9a --- /dev/null +++ b/IranProvinceMap/Shapefiles/1392/ostan_1392.prj @@ -0,0 +1 @@ +PROJCS["lamiran",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/1392/ostan_1392.sbn b/IranProvinceMap/Shapefiles/1392/ostan_1392.sbn new file mode 100644 index 00000000..cb716238 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1392/ostan_1392.sbn differ diff --git a/IranProvinceMap/Shapefiles/1392/ostan_1392.sbx b/IranProvinceMap/Shapefiles/1392/ostan_1392.sbx new file mode 100644 index 00000000..434dcf20 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1392/ostan_1392.sbx differ diff --git a/IranProvinceMap/Shapefiles/1392/ostan_1392.shp b/IranProvinceMap/Shapefiles/1392/ostan_1392.shp new file mode 100644 index 00000000..bbe90224 Binary files /dev/null and b/IranProvinceMap/Shapefiles/1392/ostan_1392.shp differ diff --git a/IranProvinceMap/Shapefiles/1392/ostan_1392.shp.xml b/IranProvinceMap/Shapefiles/1392/ostan_1392.shp.xml new file mode 100644 index 00000000..9e7f8b76 --- /dev/null +++ b/IranProvinceMap/Shapefiles/1392/ostan_1392.shp.xml @@ -0,0 +1,3 @@ + + +2013090514015800TRUEDefineProjection ostan PROJCS['WGS_1984_UTM_Zone_38N',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',45.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] ostanDefineProjection os PROJCS['lamiran',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',54.0],PARAMETER['Standard_Parallel_1',30.0],PARAMETER['Standard_Parallel_2',36.0],PARAMETER['Scale_Factor',1.0],PARAMETER['Latitude_Of_Origin',24.0],UNIT['Meter',1.0]] os1.0\\HASSAN-PC\H$\GIS\v_keshvar\ostan layer\osfile://\\HASSAN-PC\H$\GIS\v_keshvar\ostan layer\osLocal Area NetworkDataset copied.2010090514122100Dataset copied.H:\GIS\v_keshvar\os2011060404362300 diff --git a/IranProvinceMap/Shapefiles/1392/ostan_1392.shx b/IranProvinceMap/Shapefiles/1392/ostan_1392.shx new file mode 100644 index 00000000..1324d78d Binary files /dev/null and b/IranProvinceMap/Shapefiles/1392/ostan_1392.shx differ diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL2.cpg b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.cpg new file mode 100644 index 00000000..7edc66b0 --- /dev/null +++ b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.cpg @@ -0,0 +1 @@ +UTF-8 diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL2.dbf b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.dbf new file mode 100644 index 00000000..5c9fc7bc Binary files /dev/null and b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.dbf differ diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL2.fix b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.fix new file mode 100644 index 00000000..52c6bac1 Binary files /dev/null and b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.fix differ diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL2.prj b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.prj new file mode 100644 index 00000000..60bfa862 --- /dev/null +++ b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.prj @@ -0,0 +1 @@ +GEOGCS["WGS 84", DATUM["World Geodetic System 1984", SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH], AUTHORITY["EPSG","4326"]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL2.shp b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.shp new file mode 100644 index 00000000..bad5d960 Binary files /dev/null and b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.shp differ diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL2.shx b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.shx new file mode 100644 index 00000000..0971827a Binary files /dev/null and b/IranProvinceMap/Shapefiles/OSM/Iran_AL2.shx differ diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL4.cpg b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.cpg new file mode 100644 index 00000000..7edc66b0 --- /dev/null +++ b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.cpg @@ -0,0 +1 @@ +UTF-8 diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL4.dbf b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.dbf new file mode 100644 index 00000000..1b637a59 Binary files /dev/null and b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.dbf differ diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL4.fix b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.fix new file mode 100644 index 00000000..157069e4 Binary files /dev/null and b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.fix differ diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL4.prj b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.prj new file mode 100644 index 00000000..60bfa862 --- /dev/null +++ b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.prj @@ -0,0 +1 @@ +GEOGCS["WGS 84", DATUM["World Geodetic System 1984", SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH], AUTHORITY["EPSG","4326"]] \ No newline at end of file diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL4.shp b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.shp new file mode 100644 index 00000000..865a2bb1 Binary files /dev/null and b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.shp differ diff --git a/IranProvinceMap/Shapefiles/OSM/Iran_AL4.shx b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.shx new file mode 100644 index 00000000..21b394f2 Binary files /dev/null and b/IranProvinceMap/Shapefiles/OSM/Iran_AL4.shx differ diff --git a/R/101-BuildDirectoryStructure.R b/R/101-BuildDirectoryStructure.R new file mode 100644 index 00000000..b42f2d9e --- /dev/null +++ b/R/101-BuildDirectoryStructure.R @@ -0,0 +1,28 @@ +# 101-BuildDirectoryStructure +# Builds the base data.table for households +# +# Copyright © 2016: Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ BuildDirectoryStructure =====================================\n") + + + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +dir.create(Settings$HEISPath,showWarnings = FALSE) +dir.create(Settings$HEISCompressedPath,showWarnings = FALSE) +dir.create(Settings$HEISAccessPath,showWarnings = FALSE) +dir.create(Settings$HEISRawPath,showWarnings = FALSE) +dir.create(Settings$HEISProcessedPath,showWarnings = FALSE) +dir.create(Settings$HEISResultsPath,showWarnings = FALSE) + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/102-InstallRequriedPackages.R b/R/102-InstallRequriedPackages.R new file mode 100644 index 00000000..cd4f02f2 --- /dev/null +++ b/R/102-InstallRequriedPackages.R @@ -0,0 +1,64 @@ +# 102-Install Required Packagees +# +# Copyright © 2016: Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Install Required Packages =====================================\n") + + + + +pkglist <- c("yaml","RODBC","readxl","tools","foreign","data.table", + "stringr","XLConnect","sm",#"spatstat", + "ggplot2","haven", + "rworldmap","rgdal","xlsx","Hmisc","reldist","dplyr","reshape2", + "tcltk","janitor"#, + # "caret","caretEnsemble", + # "ada", "plyr", "adabag", "fastAdaboost", + #"adaptDA", + # "nnet", + # "bnclassify", "caret", "earth", "mda", "mgcv", "bartMachine", + # "arm", "binda", "party", "mboost", "partykit", "bst", "C50", + # #"CHAID", + # "rrcov", "rrcovHD", + # #"sparsediscrim", + # "deepboost", "deepnet", + # "kerndwd", "kernlab", + # #"elmNN", + # "evtree", "extraTrees", "frbs", + # "import", "gam", "h2o", "gbm", "glmnet", "Matrix", "MASS", + # #"gpls", + # "hda", "HDclassif", "RWeka", "pls", "kknn", "klaR", + # #"logicFS", + # "caTools", "LogicReg", "class", "HiDimDA", "RSNNS", "keras", + # #"FCNN4R", + # "monmlp", "msaenet", + # #"mxnet", + # "naivebayes", "nodeHarvest", + # "ordinalNet", "e1071", "ranger", "dplyr", "ordinalForest", "obliqueRF", + # "snn", "pamr", "randomForest", "foreach", "partDSA", "penalizedLDA", + # "stepPlr", "plsRglm", "supervisedPRIM", "proxy", "protoclass", + # "randomGLM", "Rborist", "LiblineaR", "rFerns", "inTrees", "robustDA", + # "rocc", "rotationForest", "rpart", "rpartScore", "RRF", "rrlda", + # "sda", "sdwd", "ipred", "sparseLDA", "spls", + # #"vbmp", + # "VGAM", + # "wsrf", "xgboost", "kohonen", + # "pROC","glmnet", + # "factoextra" + ) + +for(pkg in pkglist){ + if((eval(parse(text = paste0("require(",pkg,")")))==FALSE)) + install.packages(pkg) +} + + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/103-DownloadCompressedFiles.R b/R/103-DownloadCompressedFiles.R new file mode 100644 index 00000000..f28d35d3 --- /dev/null +++ b/R/103-DownloadCompressedFiles.R @@ -0,0 +1,69 @@ +# 103-DownloaCompressedFiles.R +# downloads the RAR files that are not present in the folder +# specified in Settings file +# +# Copyright © 2015: Majid Einian +# Licence: GPL-3 + + +################################################################################ +################################################################################ +### ### +### ### +### THIS CODE DOES NOT WORK FOR NOW. ### +### SCI PROVIDES DATA IN A MARKET. ### +### (FOR FREE NOW). ### +### I'VE NOT FOUND DIRECT DOWNLOAD LINKS YET. ### +### PUT YOUR DOWNLAODED COMPRESSED (RAR) FILES ### +### IN THE HEIS COMPRESSED FILES PATH ### +### (SPECIFIED ON SETTINGS FILE) ### +### ### +### ### +################################################################################ +################################################################################ + + + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ DownloaCompressedFiles =====================================\n") + + +library(yaml) +library(readxl) + +Settings <- yaml.load_file("Settings.yaml") + +compressed_file_names_df <- read_excel(path = Settings$MetaDataFilePath, + sheet = Settings$MDS_CFN) + +present_compressed_file_list <- list.files(Settings$HEISCompressedPath) +x <- list.dirs(Settings$HEISCompressedPath, recursive = FALSE, full.names = FALSE) +present_compressed_file_list <- setdiff(present_compressed_file_list, x) + +years <- Settings$startyear:Settings$endyear + +existing_file_list <- list.files(Settings$HEISCompressedPath) + +ys <- compressed_file_names_df$Year %in% years +needed_compressed_files_list <- compressed_file_names_df[ys,]$CompressedFileName + +files_to_download <- setdiff(needed_compressed_files_list,existing_file_list) + +if(length(files_to_download)>0){ + urls <- paste0(Settings$RawDataWebAddress,files_to_download) + for(i in 1:length(files_to_download)){ + cat(paste0("Downloading file ",i," / ", + length(files_to_download)," : ",files_to_download[i]),"\n") + try(download.file(urls[i], paste0(Settings$HEISCompressedPath, files_to_download[i]),mode="wb")) + } +}else{ + cat("All files in the range specified in Setting.yaml file are present, no need to download.") +} + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/104-ExtractAccessFiles.R b/R/104-ExtractAccessFiles.R new file mode 100644 index 00000000..c9d9ad85 --- /dev/null +++ b/R/104-ExtractAccessFiles.R @@ -0,0 +1,72 @@ +# 104-ExtractAccessFiles.R +# downloads the RAR (and zip) files that are not present in the folder +# specified in Settings file +# +# Copyright © 2015: Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ ExtractAccessFiles =====================================\n") + + +library(yaml) +library(readxl) +library(tools) + +Settings <- yaml.load_file("Settings.yaml") + +compressed_file_names_df <- read_excel(path = Settings$MetaDataFilePath, + sheet = Settings$MDS_CFN) + +existing_years <- file_path_sans_ext(list.files(Settings$HEISAccessPath)) +needed_years <- Settings$startyear:Settings$endyear +years_to_extract <- setdiff(needed_years,existing_years) + +files_to_extract <- compressed_file_names_df[ + compressed_file_names_df$Year %in% years_to_extract,]$CompressedFileName + +cmdline <- paste0(normalizePath("../exe/7z/7z.exe")," e -y ") # Use 7-zip binary + + +cwd <- getwd() +dir.create("temp") +setwd("temp") + +for(year in years_to_extract){ + filename <- compressed_file_names_df[ + compressed_file_names_df$Year ==year,]$CompressedFileName + file.copy(from = paste0(Settings$HEISCompressedPath,filename),to = ".") + shell(paste0(cmdline,filename)) + l <- dir(pattern=glob2rx("*.mdb"),ignore.case = TRUE) + if(length(l)>0){ + file.rename(from = l,to = paste0(year,".mdb")) + file.copy(from = paste0(year,".mdb"), + to = paste0(Settings$HEISAccessPath,year,".mdb")) + } + l <- dir(pattern=glob2rx("*.accdb"),ignore.case = TRUE) + if(length(l)>0){ + file.rename(from = l,to = paste0(year,".accdb")) + file.copy(from = paste0(year,".accdb"), + to = paste0(Settings$HEISAccessPath,year,".accdb")) + } + unlink("*.*") +} +setwd(cwd) +unlink("temp",recursive = TRUE,force = TRUE) + +existing_file_list <- file_path_sans_ext(list.files(Settings$HEISAccessPath)) +years <- Settings$startyear:Settings$endyear +years_had_error <- setdiff(years,existing_file_list) +if (length(years_had_error)>0 ){ + cat("\n------------------\nFollowing years had errors; you have to provide") + cat(" the *.mdb files manually for these years:\n") + cat(years_had_error) +} + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/105-ReadWriteIntoR.R b/R/105-ReadWriteIntoR.R new file mode 100644 index 00000000..a6eb5e17 --- /dev/null +++ b/R/105-ReadWriteIntoR.R @@ -0,0 +1,49 @@ +# 105-ReadWriteIntoR +# Read and Save All Tables into R Format +# +# Copyright © 2015: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ ReadWriteIntoR =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +file.copy(from = Settings$D80LinkSource, to = Settings$D80LinkDest, overwrite = TRUE) + +library(RODBC) +library(foreign) +library(data.table) + +#load(Settings$weightsFile) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + l <- dir(path=Settings$HEISAccessPath, pattern=glob2rx(paste0(year,".*")),ignore.case = TRUE) + if(year==80){ + cns<-odbcConnectAccess2007(Settings$D80LinkDest) + }else{ + cns<-odbcConnectAccess2007(paste0(Settings$HEISAccessPath, l)) + } + tbls <- data.table(sqlTables(cns))[TABLE_TYPE %in% c("TABLE","SYNONYM"),]$TABLE_NAME + print(tbls) + Tables <- vector(mode = "list")#, length = length(tbls)) + + for (tbl in tbls) { + D <- data.table(sqlFetch(cns,tbl,stringsAsFactors=FALSE)) + Tables[[tbl]] <- D + } + names(Tables) <- toupper(names(Tables)) +# Tables[[paste0("RU",year,"Weights")]] <- AllWeights[(Year==year),] + close(cns) + save(Tables,file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/111-HHBase.R b/R/111-HHBase.R new file mode 100644 index 00000000..3606c5a3 --- /dev/null +++ b/R/111-HHBase.R @@ -0,0 +1,244 @@ +# 111-HHBase.R +# Builds the base data.table for households +# +# Copyright © 2016-2020: Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHBase =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + +year <- 99 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + if(year >86 & year < 92 ){ + load(file=paste0(Settings$HEISCountyCodePath,"Y",year, + Settings$HEISCountyCodeFileName,".rda")) + } + + if(year < 87){ # RxxData & UxxData tables are provided Since 1387 + RData <- Tables[[paste0("R",year,"P2")]][,1,with=FALSE] + RData[, Region:=factor(x="Rural",levels=c("Urban","Rural"))] + UData <- Tables[[paste0("U",year,"P2")]][,1,with=FALSE] + UData[, Region:=factor(x="Urban",levels=c("Urban","Rural"))] + HHBase <- rbind(RData, UData) + rm(RData,UData) + setnames(HHBase,c("HHID","Region")) + HHBase[,Year:=year] + if(year==74){ + HHBase[,HHIDs:=formatC(HHID, width = 8, flag = "0")] + }else if(year<77){ + HHBase[,HHIDs:=formatC(HHID, width = 7, flag = "0")] + }else if(year %in% 77:86){ + HHBase[,HHIDs:=formatC(HHID, width = 9, flag = "0")] + } + if(year < 77){ + HHBase[,Quarter:=as.integer(str_sub(HHIDs,4,4))] + }else{ + HHBase[,Quarter:=as.integer(str_sub(HHIDs,6,6))] + } + HHBase[,Month:=NA_integer_] + + }else{ + RData <- Tables[[paste0("R",year,"DATA")]][,c(1,2,4),with=FALSE] + RData[, Region:=factor(x="Rural",levels=c("Urban","Rural"))] + UData <- Tables[[paste0("U",year,"DATA")]][,c(1,2,4),with=FALSE] + UData[, Region:=factor(x="Urban",levels=c("Urban","Rural"))] + HHBase <- rbind(RData, UData) + rm(RData,UData) + setnames(HHBase,c("HHID","Month","Weight","Region")) + HHBase[,Month:=ifelse(Month==1,12,Month - 1)] + HHBase[HHID=="10107019605" & year==97,Month:=2] # Odd Month (-1) in 1397 + if(length(which(HHBase$Month<=0))>0) + stop("Odd Month Number Here!") + HHBase[,Quarter:=(Month-1)%/%3+1] + HHBase[,HHIDs:=as.character(HHID)] + } + + if(year >86 & year < 92 ){ + HHBase<-merge(HHBase,ShCode,by="HHID",all.x = TRUE) + } + + HHBase <- HHBase[!is.na(HHID)] + # HHBase[,ProvinceCode:=as.integer(str_sub(HHIDs,2,3))] + + if(year <= 86 | year >= 92 ){ + HHBase[,CountyCode:=as.integer(str_sub(HHIDs,2,5))] + } + + if(year >= 87 & year <= 91 ){ + HHBase[,CountyCode:=as.integer(SHCode)] + } + + #Tehran-Alborz + if(year >76 & year < 92 ){ + HHBase[CountyCode==2305, CountyCode:=3001] # Karaj + HHBase[CountyCode==2308, CountyCode:=3002] # Savojbolagh + } + + + #Khorasan + if(year >76 & year < 87 ){ + HHBase[CountyCode==901, CountyCode:=2801] # Esfarayen + HHBase[CountyCode==902, CountyCode:=2802] # Bojnourd + HHBase[CountyCode==909, CountyCode:=2804] # Shirvan + HHBase[CountyCode==924, CountyCode:=2803] # Jajarm + HHBase[CountyCode==925, CountyCode:=2806] # Maneh & Samalqan + + HHBase[CountyCode==903, CountyCode:=2901] # Birjand + HHBase[CountyCode==911, CountyCode:=2907] # Ferdows + HHBase[CountyCode==912, CountyCode:=2904] # Qaenat + HHBase[CountyCode==921, CountyCode:=2905] # Nehbandan + + + HHBase[CountyCode==2809, CountyCode:=2804] # Shirvan + } + if(year %in% 84:86){ + HHBase[CountyCode==2824, CountyCode:=2803] # Jaram + HHBase[CountyCode==2809, CountyCode:=2804] # Shirvan + HHBase[CountyCode==2813, CountyCode:=2805] # Faruj # Guess! + HHBase[CountyCode==2825, CountyCode:=2806] # Mane & Semelqan + + HHBase[CountyCode==2903, CountyCode:=2901] # Birjand + HHBase[CountyCode==2912, CountyCode:=2906] # Sarbishe # Just a guess + HHBase[CountyCode==2921, CountyCode:=2905] # Nehbandan + HHBase[CountyCode==2911, CountyCode:=2903] # Serayan # Just a guess + #HHBase[CountyCode==0911, CountyCode:=2907] # Ferdows + } + + + + HHBase[CountyCode==2110, CountyCode:=2911] # Tabas + HHBase[CountyCode==2315, CountyCode:=3003] # Nazarabad + + + # #Ghazvin + # if(year >76 & year < 82 ){ + # HHBase[CountyCode %in% c(2311), + # NewArea:=26] + # } + # + #Golestan + # if(year >76 & year < 82 ){ + # HHBase[CountyCode %in% c(212,203,209,211,213,217), + # NewArea:=27] + # } + + HHBase[,ProvinceCode:=CountyCode %/% 100] + + HHBase[,Year:=year] + + Geo2 <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_Geo2)) + Geo2 <- Geo2[,.(ProvinceCode=SCINo,ProvinceName=NameEnglish)] + HHBase <- merge(HHBase,Geo2,by="ProvinceCode") + + Geo4 <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_Geo4)) + Geo4 <- Geo4[,.(CountyCode=as.numeric(Geo4),CountyName=CountyEn)] + + + HHBase <- merge(HHBase,Geo4,by="CountyCode",all.x = TRUE) + + if(year >=99){ + HHWeights <- HHBase[,.(HHID,Weight,Year)] + save(HHWeights,file=paste0(Settings$HEISWeightsPath, + Settings$HEISWeightFileName,year,".rda")) + } + + HHBase <- HHBase[,.(HHID,Year,Quarter,Month, + Region,ProvinceCode,ProvinceName, + CountyCode,CountyName)] + +# print(table(HHBase[is.na(CountyName),CountyCode])) + + + HHBase[,NewArea:=ProvinceCode] + HHBase[Region=="Urban" & + CountyCode %in% c(2301,303, # Tehran (County), Tabriz, + 603,707, # Ahvaz, Shiraz + 916,1002, # Mashhad, Isfahan (County) + 3001,502, # Karaj, Kermanshah (County), + 2202,401, # Bandarabbas, Urmia + 808,1105, # Kerman (County), Zahedan + 1304, # Hamedan (County) + 2105,105), # Yazd (County), Rasht + NewArea:=CountyCode] + HHBase[Region=="Urban" & CountyCode ==1, + NewArea:=-1] # Arak [0001] to not be + # confused with [01] Gilan + + + HHBase[,NewArea_Name:=NA_character_] + HHBase[,NewArea_Name:=ifelse(NewArea==ProvinceCode, + ProvinceName, + paste0("Sh_",CountyName))] + HHBase[,NewArea_Name:=as.factor(NewArea_Name)] + + + save(HHBase, file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + + cat(HHBase[,.N]) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) + + + +for(year in (Settings$startyear:Settings$endyear)){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + cat("\n",year,":",(length(unique(HHBase$CountyCode)))) + HHBase[,Geo4:=str_pad(CountyCode, 4, pad = "0")] + HHBase[,Geo2:=str_pad(ProvinceCode, 2, pad = "0")] + + if(year %in% 84:86){ + HHBase[Geo4=="2824", Geo4:="2803"] # Jaram + HHBase[Geo4=="2809", Geo4:="2804"] # Shirvan + HHBase[Geo4=="2813", Geo4:="2805"] # Faruj # Guess! + HHBase[Geo4=="2825", Geo4:="2806"] # Mane & Semelqan + + HHBase[Geo4=="2903", Geo4:="2901"] # Birjand + HHBase[Geo4=="2912", Geo4:="2906"] # Sarbishe # Just a guess + HHBase[Geo4=="2921", Geo4:="2905"] # Nehbandan + HHBase[Geo4=="2911", Geo4:="2903"] # Serayan # Just a guess + #HHBase[Geo4=="0911", Geo4:="2907"] # Ferdows + } + + + if(year %in% 87:91){ + HHBase[Geo2=="30" & Geo4=="2305", Geo4:="3001"] + HHBase[Geo2=="30" & Geo4=="2308", Geo4:="3002"] + HHBase[Geo2=="30" & Geo4=="2315", Geo4:="3003"] + } + + HHBase[,FGeo4:=Geo4] + + HHBase[Geo4=="0901", FGeo4:="2801"] # Esfarayen + HHBase[Geo4=="0902", FGeo4:="2802"] # Bojnourd + HHBase[Geo4=="0903", FGeo4:="2901"] # Birjand + HHBase[Geo4=="0909", FGeo4:="2804"] # Shirvan + HHBase[Geo4=="0910", FGeo4:="2911"] # Tabas (1) + HHBase[Geo4=="0911", FGeo4:="2907"] # Ferdows + HHBase[Geo4=="0912", FGeo4:="2904"] # Qaenat + HHBase[Geo4=="0921", FGeo4:="2905"] # Nehbandan + HHBase[Geo4=="0924", FGeo4:="2803"] # Jajarm + HHBase[Geo4=="0925", FGeo4:="2806"] # Mane & Semelqan + HHBase[Geo4=="2110", FGeo4:="2911"] # Tabas (2) + HHBase[Geo4=="2305", FGeo4:="3001"] # Karaj + HHBase[Geo4=="2308", FGeo4:="3002"] # Savojbolaq + HHBase[Geo4=="2315", FGeo4:="3003"] # Nazarabad + + HHBase[,FGeo2:=substr(FGeo4,1,2)] + +} diff --git a/R/112-InfantMilkExpenditures.R b/R/112-InfantMilkExpenditures.R new file mode 100644 index 00000000..6646d464 --- /dev/null +++ b/R/112-InfantMilkExpenditures.R @@ -0,0 +1,53 @@ +# 112-InfantMilkExpenditures.R +# Builds a column for Infant Milk (Baby Formula) Expenditures +# This is used later to identify lactating women +# +# Copyright © 2019-2020: Zahra Shahidi, Majid Einian +# License: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() +cat("\n\n========== Infant Milk (Baby Formula) Expenditures ================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + InfantMilkTables <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_InfantMilk)) + + imt <- InfantMilkTables[Year == year] + tab <- imt$Table + if (is.na(tab)) + next + UTInfantMilk <- Tables[[paste0("U",year,tab)]] + RTInfantMilk <- Tables[[paste0("R",year,tab)]] + TInfantMilk <- rbind(UTInfantMilk,RTInfantMilk) + for(n in names(TInfantMilk)){ + x <- which(imt==n) + if(length(x)>0) + setnames(TInfantMilk,n,names(imt)[x]) + } + pcols <- intersect(names(TInfantMilk),c("HHID","Code", + "InfantMilkExpenditure")) + TInfantMilk <- TInfantMilk[Code %in% imt$StartCode:imt$EndCode, + pcols,with=FALSE] + TInfantMilk <- TInfantMilk[,Code:=NULL] + TInfantMilk <- TInfantMilk[,InfantMilkExpenditure:= + as.numeric(InfantMilkExpenditure)] + TInfantMilk[is.na(TInfantMilk)] <- 0 + TInfantMilk <- TInfantMilk[,lapply(.SD,sum),by=HHID] + + save(TInfantMilk,file = paste0(Settings$HEISProcessedPath, + "Y",year,"InfantMilk.rda")) +} + +endTime <- proc.time() +cat("\n\n============================\nIt took",(endTime-startTime)[3], "seconds.") \ No newline at end of file diff --git a/R/113-Demo.R b/R/113-Demo.R new file mode 100644 index 00000000..abfdeae3 --- /dev/null +++ b/R/113-Demo.R @@ -0,0 +1,327 @@ +# 113-Demo.R +# Builds the demographics information data.table for households, and then based +# on the age structure and presence of lactating women, calculated the calories +# needed for each household (Based on calorie need tables by the World Bank and +# and the Nutrition Institute) +# +# Copyright © 2016-2020: Majid Einian and Zahra Shahidi and ? +# License: GPL-3 +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================== Demographics & Calorie Need ====================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + +P1Cols <- data.table(read_excel(Settings$MetaDataFilePath, Settings$MDS_P1Cols)) + +EduCodesA <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_A)) +EduCodesB <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_B)) +EduCodesC <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_C)) +EduCodesD <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_D)) + +years <- Settings$startyear:Settings$endyear + +for(year in years){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InfantMilk.rda")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + + + if(year<=84){ + EduCodeT <- EduCodesA + }else if(year %in% 85:92){ + EduCodeT <- EduCodesB + }else if(year %in% 93:96){ + EduCodeT <- EduCodesC + }else if(year >=97){ + EduCodeT <- EduCodesD + } + + P1 <- rbind(Tables[[paste0("R",year,"P1")]],Tables[[paste0("U",year,"P1")]]) + nP1 <- names(P1) + if(length(which(sapply(P1, is.character)))>0){ + P1c <- P1[,lapply(.SD,iconv,"WINDOWS-1252","UTF-8"), .SDcols=sapply(P1,is.character)] + P1nc <- P1[,!sapply(P1,is.character),with=FALSE] + P1 <- cbind(P1c,P1nc)[,nP1,with=FALSE] + } + + a <- unlist(P1Cols[P1Cols$Year==year,]) + ind <- which(!is.na(a))[-1] + setnames(P1,a[ind],names(a[ind])) + + f <- function(x){as.numeric(str_trim(x))} + P1 <- P1[, lapply(.SD, f)] # , .SDcols=which(sapply(P1, class)=="character")] + + + P1[is.na(Age),Age:=0L] + P1[,Relationship :=factor(Relationship, levels=1:9, + labels=c("Head","Spouse","Child","Child-in-Law", + "Grand-Child","Parent","Sister/Brother", + "Other Family","Non-Family"))] + + P1[,Sex := factor(Sex, levels=1:2, + labels=c("Male","Female"))] + + P1<-P1[Sex=="Male" | Sex=="Female"] + + if(year %in% 63:64){ + P1[,Literate:=LitState<=3] + }else if(year %in% 65:68){ + P1[,Literate:=LitState<=2] + }else{ + P1[,Literate:=Literate==1] + } + + if(year %in% 63:68){ + P1[,Student:=LitState==1] + }else{ + P1[,Student:=Student==1] + } + + P1[,EduYears:=EduCodeT$yoe[match(EduCode,EduCodeT$Code)]] + P1$EduYears[P1$Literate==FALSE] <- 0 + P1[,EduLevel0:=cut(EduYears,breaks=c(-1,0,6,12,22), + labels= c("Illiterate","Primary","Secondary","University"))] + P1[,EduLevel1:=cut(EduYears,breaks=c(-1,0,6,9,11,12,22), + labels= c("Illiterate","Elementary","Middle","High","Pre","University"))] + P1[,EduLevel:=cut(EduYears,breaks=c(-1,0,6,12,14,16,18,23), + labels= c("Illiterate","Primary","Secondary", + "College","Bachelors","Masters","PhD"))] + + P1[,ActivityState:=as.numeric(substr(as.character(ActivityState),1,1))] + + if(year %in% 63:64){ + P1[,ActivityState:=factor(ActivityState,1:9, + c("Employed","Seasonal Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Unemployed Not Looking for Job", + "Other","Former Member"))] + levels(P1$ActivityState) <- c(c("Employed","Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Other", + "Other","Other")) + }else if(year %in% 65:68){ + P1[,ActivityState:=factor(ActivityState,1:8, + c("Employed","Seasonal Unemployed","Income without Work", + "Unemployed","Student","Housekeeper", + "Other","Former Member"))] + levels(P1$ActivityState) <- c(c("Employed","Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Other", + "Other")) + }else{ + P1[,ActivityState:=factor(ActivityState,1:6, + c("Employed","Unemployed","Income without Work", + "Student","Housekeeper","Other"))] + } + + if(year %in% 66:68){ + P1[,MarritalState:=factor(NA,1:4, + c("Married","Widowed","Divorced","Bachelor"))] + }else{ + P1[,MarritalState:=factor(MarritalState,1:4, + c("Married","Widowed","Divorced","Bachelor"))] + } + save(P1,file=paste0(Settings$HEISProcessedPath,"Y",year,"MembersProperties.rda")) + + P <- copy(P1) + + P <- P[order(P$HHID),] + + B <- P[IndivNo==1] + setnames(B,2:length(B),sapply(X=names(B)[2:length(B)],function(X){paste("H",X,sep="")})) + B <- B[order(HHID,HIndivNo)] + B <- B[!duplicated(B$HHID),] + + B[,HEmployed:=HActivityState=="Employed"] + B[,HUnemployed:=HActivityState=="Unemployed"] + B[,HIncomeWOWork:=HActivityState=="Income without Work"] + + B <- B[!is.na(HActivityState) & !is.na(HLiterate)] + +### Define Age Groups ========================================== + P[,Size:=1] + P[,Kids:=ifelse(Relationship=="Child",1,0)] + P[,NKids:=ifelse(Age<15,1,0)] + P[,NKids1:=ifelse(Age<11,1,0)] + P[,NInfants:=ifelse(Age<=2,1,0)] + P[,NInfants0:=ifelse(Age==0,1,0)] + P[,Bahremand:=ifelse(Student=="TRUE",1,0)] + P[,NStudents:=ifelse(Age<=18 & Age>=6,1,0)] + P[,UN18All:=ifelse(Age<=18,1,0)] + P[,UN18:=ifelse(Age<=18,1,0)] + P[,NEduParent:=ifelse((Relationship=="Head" | Relationship=="Spouse") & (EduYears>11),1,0)] + P[,NEduOther:=ifelse((Relationship=="Parent" | Relationship=="Sister/Brother" | Relationship=="Other Family" | Relationship=="Non-Family") & (EduYears>11),1,0)] + P[,Mother:=ifelse(Relationship=="Spouse",1,0)] + P[,NSmallKids:=ifelse(Age>=3 & Age<=13, 1, 0)] + P[,NElementary:= ifelse(EduLevel1=="Elementary" & Student==TRUE,1,0)] + P[,NMiddle:= ifelse(EduLevel1=="Middle" & Student==TRUE,1,0)] + P[,NHigh:= ifelse(EduLevel1=="High" & Student==TRUE,1,0)] + P[,NCollege:=ifelse(EduLevel=="College" & Student==TRUE,1,0)] + P[,NBachelors:=ifelse(EduLevel=="Bachelors" & Student==TRUE,1,0)] + P[,NMasters:=ifelse(EduLevel=="Masters" & Student==TRUE,1,0)] + P[,NPhD:=ifelse(EduLevel=="PhD" & Student==TRUE,1,0)] + P[,NUniv:=NCollege+NBachelors+NMasters+NPhD] + P[,NLiterate:=ifelse(EduLevel!="Illiterate",1,0)] + P[,NEmployed:=ifelse(ActivityState=="Employed",1,0)] + P[,NUnEmployed:=ifelse(ActivityState=="Unemployed",1,0)] + + P[,NYHigh:=ifelse((Age>17 & Age<25) & ((EduLevel1=="Illiterate") | (EduLevel1=="Elementary") | (EduLevel1=="Middle") | EduLevel1=="High"),1,0)] + P[,NY:=ifelse((Age>17 & Age<25),1,0)] + P[,NKElementary:=ifelse((Age>11 & Age<18) & ((EduLevel1=="Illiterate")),1,0)] + P[,NK:=ifelse((Age>11 & Age<18),1,0)] + + #Age Groups 1 + P[,NAge1B:=ifelse(Age==0 & Sex=="Male",1,0)] + P[,NAge1G:=ifelse(Age==0 & Sex=="Female",1,0)] + P[,NAge2B:=ifelse(Age==1 & Sex=="Male",1,0)] + P[,NAge2G:=ifelse(Age==1 & Sex=="Female",1,0)] + P[,NAge3B:=ifelse(Age==2 & Sex=="Male",1,0)] + P[,NAge3G:=ifelse(Age==2 & Sex=="Female",1,0)] + P[,NAge4B:=ifelse(Age==3 & Sex=="Male",1,0)] + P[,NAge4G:=ifelse(Age==3 & Sex=="Female",1,0)] + P[,NAge5B:=ifelse(Age==4 & Sex=="Male",1,0)] + P[,NAge5G:=ifelse(Age==4 & Sex=="Female",1,0)] + P[,NAge6B:=ifelse(Age<=9 & Age>4 & Sex=="Male",1,0)] + P[,NAge6G:=ifelse(Age<=9 & Age>4 & Sex=="Female",1,0)] + P[,NAge7B:=ifelse(Age<=14 & Age>9 & Sex=="Male",1,0)] + P[,NAge7G:=ifelse(Age<=14 & Age>9 & Sex=="Female",1,0)] + P[,NAge8B:=ifelse(Age<=19 & Age>14 & Sex=="Male",1,0)] + P[,NAge8G:=ifelse(Age<=19 & Age>14 & Sex=="Female",1,0)] + P[,NAge9B:=ifelse(Age<=59 & Age>19 & Sex=="Male",1,0)] + P[,NAge9G:=ifelse(Age<=59 & Age>19 & Sex=="Female",1,0)] + P[,NAge10B:=ifelse(Age>59 & Sex=="Male",1,0)] + P[,NAge10G:=ifelse(Age>59 & Sex=="Female",1,0)] + P[,NDabestan:=ifelse(Age>=7 & Age<=11,1,0)] + P[,NRahnamayi:=ifelse(Age>=12 & Age<=14,1,0)] + P[,NDabirestan:=ifelse(Age>=15 & Age<=17,1,0)] + P[,NPish:=ifelse(Age==18,1,0)] + #Age Groups 2 + P[,NAge1_NutInst_B:=ifelse(Age==0 & Sex=="Male",1,0)] + P[,NAge1_NutInst_G:=ifelse(Age==0 & Sex=="Female",1,0)] + P[,NAge2_NutInst_B:=ifelse(Age==1 & Sex=="Male",1,0)] + P[,NAge2_NutInst_G:=ifelse(Age==1 & Sex=="Female",1,0)] + P[,NAge3_NutInst_B:=ifelse(Age>=2 & Age<=3 & Sex=="Male",1,0)] + P[,NAge3_NutInst_G:=ifelse(Age>=2 & Age<=3 & Sex=="Female",1,0)] + P[,NAge4_NutInst_B:=ifelse(Age>=4 & Age<=5 & Sex=="Male",1,0)] + P[,NAge4_NutInst_G:=ifelse(Age>=4 & Age<=5 & Sex=="Female",1,0)] + P[,NAge5_NutInst_B:=ifelse(Age<=11 & Age>=6 & Sex=="Male",1,0)] + P[,NAge5_NutInst_G:=ifelse(Age<=11 & Age>=6 & Sex=="Female",1,0)] + P[,NAge6_NutInst_B:=ifelse(Age<=17 & Age>=12 & Sex=="Male",1,0)] + P[,NAge6_NutInst_G:=ifelse(Age<=17 & Age>=12 & Sex=="Female",1,0)] + P[,NAge7_NutInst_B:=ifelse(Age<=29 & Age>=18 & Sex=="Male",1,0)] + P[,NAge7_NutInst_G:=ifelse(Age<=29 & Age>=18 & Sex=="Female",1,0)] + P[,NAge8_NutInst_B:=ifelse(Age<=60 & Age>=30 & Sex=="Male",1,0)] + P[,NAge8_NutInst_G:=ifelse(Age<=60 & Age>=30 & Sex=="Female",1,0)] + P[,NAge9_NutInst_B:=ifelse(Age>60 & Sex=="Male",1,0)] + P[,NAge9_NutInst_G:=ifelse(Age>60 & Sex=="Female",1,0)] + + PSum <- P[,lapply(.SD,sum,na.rm=TRUE), + .SDcols=c("Size","NKids","NInfants","NInfants0","NSmallKids","NKids1","UN18","UN18All","NKElementary","NK", + "NElementary","NHigh","NMiddle","NStudents","Bahremand","Mother","NEduParent","NEduOther", + "NCollege","NBachelors","NMasters","NPhD","NUniv","NYHigh","NY", + "NAge1B","NAge1G", + "NAge2B","NAge2G", + "NAge3B","NAge3G", + "NAge4B","NAge4G", + "NAge5B","NAge5G", + "NAge6B","NAge6G", + "NAge7B","NAge7G", + "NAge8B","NAge8G", + "NAge9B","NAge9G", + "NAge10B","NAge10G", + "NAge1_NutInst_B","NAge1_NutInst_G", + "NAge2_NutInst_B","NAge2_NutInst_G", + "NAge3_NutInst_B","NAge3_NutInst_G", + "NAge4_NutInst_B","NAge4_NutInst_G", + "NAge5_NutInst_B","NAge5_NutInst_G", + "NAge6_NutInst_B","NAge6_NutInst_G", + "NAge7_NutInst_B","NAge7_NutInst_G", + "NAge8_NutInst_B","NAge8_NutInst_G", + "NAge9_NutInst_B","NAge9_NutInst_G", + "NDabestan","NRahnamayi", + "NDabirestan","NPish", + "NEmployed","NUnEmployed","NLiterate"), + by="HHID"] + UnEmployed<-PSum[,.(HHID,NUnEmployed)] + save(UnEmployed,year,file=paste0(Settings$HEISProcessedPath,"Y",year,"UnEmployed.rda")) + PSum<- merge(PSum,TInfantMilk,by="HHID",all.x = TRUE) + PSum[is.na(InfantMilkExpenditure), InfantMilkExpenditure := 0] + PSum<-PSum[,Lactating:=ifelse(NInfants0>0 & InfantMilkExpenditure==0,1,0)] + + PSum[,Calorie_Need_WorldBank:= + NAge1B*Settings$KCaloryNeed_B1+ + NAge2B*Settings$KCaloryNeed_B2+ + NAge3B*Settings$KCaloryNeed_B3+ + NAge4B*Settings$KCaloryNeed_B4+ + NAge5B*Settings$KCaloryNeed_B5+ + NAge6B*Settings$KCaloryNeed_B6+ + NAge7B*Settings$KCaloryNeed_B7+ + NAge8B*Settings$KCaloryNeed_B8+ + NAge9B*Settings$KCaloryNeed_B9+ + NAge10B*Settings$KCaloryNeed_B10+ + NAge1G*Settings$KCaloryNeed_G1+ + NAge2G*Settings$KCaloryNeed_G2+ + NAge3G*Settings$KCaloryNeed_G3+ + NAge4G*Settings$KCaloryNeed_G4+ + NAge5G*Settings$KCaloryNeed_G5+ + NAge6G*Settings$KCaloryNeed_G6+ + NAge7G*Settings$KCaloryNeed_G7+ + NAge8G*Settings$KCaloryNeed_G8+ + NAge9G*Settings$KCaloryNeed_G9+ + NAge10G*Settings$KCaloryNeed_G10+ + Lactating*(Settings$KCaloryNeed_lactating)] + + PSum[,Calorie_Need_NutritionInstitute:= + NAge1_NutInst_B*Settings$KCaloryNeed_NutInst_B1+ + NAge2_NutInst_B*Settings$KCaloryNeed_NutInst_B2+ + NAge3_NutInst_B*Settings$KCaloryNeed_NutInst_B3+ + NAge4_NutInst_B*Settings$KCaloryNeed_NutInst_B4+ + NAge5_NutInst_B*Settings$KCaloryNeed_NutInst_B5+ + NAge6_NutInst_B*Settings$KCaloryNeed_NutInst_B6+ + NAge7_NutInst_B*Settings$KCaloryNeed_NutInst_B7+ + NAge8_NutInst_B*Settings$KCaloryNeed_NutInst_B8+ + NAge9_NutInst_B*Settings$KCaloryNeed_NutInst_B9+ + NAge1_NutInst_G*Settings$KCaloryNeed_NutInst_G1+ + NAge2_NutInst_G*Settings$KCaloryNeed_NutInst_G2+ + NAge3_NutInst_G*Settings$KCaloryNeed_NutInst_G3+ + NAge4_NutInst_G*Settings$KCaloryNeed_NutInst_G4+ + NAge5_NutInst_G*Settings$KCaloryNeed_NutInst_G5+ + NAge6_NutInst_G*Settings$KCaloryNeed_NutInst_G6+ + NAge7_NutInst_G*Settings$KCaloryNeed_NutInst_G7+ + NAge8_NutInst_G*Settings$KCaloryNeed_NutInst_G8+ + NAge9_NutInst_G*Settings$KCaloryNeed_NutInst_G9+ + Lactating*(Settings$KCaloryNeed_lactating)] + + HHWeights <- as.data.table(HHWeights) + HHWeights <- HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + + HHI <- merge(B,PSum,by="HHID") + HHI <- merge(HHI,HHWeights,by="HHID") + # Calorie_Need<-HHI[,.(Calorie_Need_WorldBank=weighted.mean(Calorie_Need1,Weight), + # Calorie_Need_NutritionInstitute=weighted.mean(Calorie_Need2,Weight)),by="HHID"] + + HHI[,EqSizeOECD := ifelse(Size==NKids,1+(NKids-1)*0.5, + 1 + (Size-NKids-1)*0.7 + (NKids)*0.5)] + #HHI[,EqSizeOECD := ifelse(Size==NKids,1+(NKids-1)*0.3, + # 1 + (Size-NKids-1)*0.5 + (NKids)*0.3)] + #HHI[,EqSizeOECD := sqrt(Size)] + HHI <- HHI[!is.na(HLiterate)] + + rm(P,B) + save(HHI,year,file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) +# save(Calorie_Need,file=paste0(Settings$HEISProcessedPath,"Y",year,"Calorie_Need.rda")) + + HHI2<-HHI[NInfants0>0] + cat(HHI2[,weighted.mean(Lactating,Weight)]) + + } + +endtime <- proc.time() +cat("\n\n============================\nIt took ",(endtime-starttime)[3],"seconds") \ No newline at end of file diff --git a/R/121-HHHouseProperties.R b/R/121-HHHouseProperties.R new file mode 100644 index 00000000..ec6ae053 --- /dev/null +++ b/R/121-HHHouseProperties.R @@ -0,0 +1,173 @@ +# 121-HHHouseProperties.R +# Builds the House Properties data.table for households +# +# Copyright © 2019-2020: Arin Shahbazian, Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() +cat("\n\n================ HHHouseProperties ================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +P2Cols <- data.table(read_excel(Settings$MetaDataFilePath, Settings$MDS_P2Cols)) +#year<-90 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + P2 <- rbind(Tables[[paste0("R",year,"P2")]],Tables[[paste0("U",year,"P2")]]) + nP2 <- names(P2) + if(length(which(sapply(P2, is.character)))>0){ + P2c <- P2[,lapply(.SD,iconv,"WINDOWS-1252","UTF-8"), + .SDcols=sapply(P2,is.character)] + P2nc <- P2[,!sapply(P2,is.character),with=FALSE] + P2 <- cbind(P2c,P2nc)[,nP2,with=FALSE] + } + + a <- unlist(P2Cols[P2Cols$Year==year,]) + ind <- which(!is.na(a))[-1] + setnames(P2,a[ind],names(a[ind])) + + f <- function(x){as.numeric(str_trim(x))} + P2 <- P2[, lapply(.SD, f)] + + P2[is.na(P2)]<-0 + + P2[,tenure :=factor(tenure, levels=1:7, + labels=c("OwnLandandBuilding","Apartment","Rented", + "Mortgage","AgainstService", + "Free","Other"))] + + P2[,skeleton :=factor(skeleton, levels=1:3, + labels=c("metal","concrete","other"))] + + P2[,constmat :=factor(constmat, levels=1:8, + labels=c("BrickSteel_StoneSteel","Brickwood_Stonewood", + "CementBlocks","AllBrick_Stone","Allwood", + "SundriedBrickwood","SundriedBrickmud", + "other"))] + save(P2, file=paste0(Settings$HEISProcessedPath,"Y",year, + "HHHouseProperties.rda")) + P2[,cookfuel :=factor(cookfuel, levels=1:10, + labels=c("karosine","gasoline", + "gas","pipedgas", + "electricity","woodandcharcoal", + "Animalfuel","charcoal","otherFuel","None"))] + + P2[,heatfuel :=factor(heatfuel, levels=11:20, + labels=c("karosine","gasoline", + "gas","pipedgas", + "electricity","woodandcharcoal", + "Animalfuel","charcoal","otherFuel","None"))] + if("hotwater" %in% names(P2)){ + P2[,hotwater :=factor(hotwater, levels=21:30, + labels=c("karosine","gasoline", + "gas","pipedgas", + "electricity","woodandcharcoal", + "Animalfuel","charcoal","otherFuel","None"))] + } + + if (year==90){ + P2<-P2[,Phone:=ifelse(phone==4,TRUE,FALSE)] + P2<-P2[,Bike:=ifelse(bike==1,TRUE,FALSE)] + P2<-P2[,Radio:=ifelse(radio==1,TRUE,FALSE)] + P2<-P2[,Cassette:=ifelse(cassette==1,TRUE,FALSE)] + P2<-P2[,Tvbw:=ifelse(tvbw==1,TRUE,FALSE)] + P2<-P2[,Tvcr:=ifelse(tvcr==1,TRUE,FALSE)] + P2<-P2[,Vcr:=ifelse(vcr==1,TRUE,FALSE)] + P2<-P2[,CellPhone:=ifelse(cellphone==1,TRUE,FALSE)] + P2<-P2[,Freezer:=ifelse(freezer==1,TRUE,FALSE)] + P2<-P2[,Refrigerator:=ifelse(refrigerator==1,TRUE,FALSE)] + P2<-P2[,Frez_Refrig:=ifelse(frez_refrig==1,TRUE,FALSE)] + P2<-P2[,Oven:=ifelse(oven==1,TRUE,FALSE)] + P2<-P2[,Vacuum:=ifelse(vacuum==1,TRUE,FALSE)] + P2<-P2[,Washer:=ifelse(washer==1,TRUE,FALSE)] + P2<-P2[,Sewing:=ifelse(sewing==1,TRUE,FALSE)] + P2<-P2[,Fan:=ifelse(fan==1,TRUE,FALSE)] + P2<-P2[,Cooler_Water_Movable:=ifelse(cooler_water_movable==1,TRUE,FALSE)] + P2<-P2[,Cooler_Gas_Movable:=ifelse(cooler_gas_movable==1,TRUE,FALSE)] + P2<-P2[,Dishwasher:=ifelse(dishwasher==1,TRUE,FALSE)] + P2<-P2[,Internet:=ifelse(internet==5,TRUE,FALSE)] + P2<-P2[,Bathroom:=ifelse(bathroom==6,TRUE,FALSE)] + P2<-P2[,None:=ifelse(none==1,TRUE,FALSE)] + P2<-P2[,Pipewater:=ifelse(pipewater==1,TRUE,FALSE)] + P2<-P2[,Electricity:=ifelse(electricity==2,TRUE,FALSE)] + P2<-P2[,Pipegas:=ifelse(pipegas==3,TRUE,FALSE)] + P2<-P2[,Kitchen:=ifelse(kitchen==7,TRUE,FALSE)] + P2<-P2[,Cooler:=ifelse(cooler==8,TRUE,FALSE)] + P2<-P2[,CentralCooler:=ifelse(centralcooler==9,TRUE,FALSE)] + P2<-P2[,CentralHeat:=ifelse(centralheat==10,TRUE,FALSE)] + P2<-P2[,Pakage:=ifelse(pakage==11,TRUE,FALSE)] + P2<-P2[,Cooler_Gas:=ifelse(cooler_gas==12,TRUE,FALSE)] + P2<-P2[,SewageNetwork:=ifelse(seweragenetwork==13,TRUE,FALSE)] + P2<-P2[,Car:=ifelse(car==1,TRUE,FALSE)] + P2<-P2[,MotorCycle:=ifelse(motorcycle==1,TRUE,FALSE)] + + P2<-P2[,phone:= Phone] + P2<-P2[,bike:= Bike] + P2<-P2[,radio:= Radio ] + P2<-P2[,cassette:= Cassette ] + P2<-P2[,tvbw:= Tvbw ] + P2<-P2[,tvcr:= Tvcr ] + P2<-P2[,vcr:= Vcr ] + P2<-P2[,cellphone:= CellPhone ] + P2<-P2[,freezer:= Freezer ] + P2<-P2[,refrigerator:= Refrigerator ] + P2<-P2[,frez_refrig:= Frez_Refrig ] + P2<-P2[,oven:= Oven ] + P2<-P2[,vacuum:= Vacuum ] + P2<-P2[,washer:= Washer ] + P2<-P2[,sewing:= Sewing ] + P2<-P2[,fan:= Fan ] + P2<-P2[,cooler_water_movable:= Cooler_Water_Movable ] + P2<-P2[,cooler_gas_movable:= Cooler_Gas_Movable ] + P2<-P2[,dishwasher:= Dishwasher ] + P2<-P2[,internet:= Internet] + P2<-P2[,bathroom:= Bathroom] + P2<-P2[,none:= None ] + P2<-P2[,pipewater:= Pipewater ] + P2<-P2[,electricity:= Electricity] + P2<-P2[,pipegas:= Pipegas] + P2<-P2[,kitchen:= Kitchen] + P2<-P2[,cooler:= Cooler] + P2<-P2[,centralcooler:= CentralCooler] + P2<-P2[,centralheat:= CentralHeat] + P2<-P2[,pakage:= Pakage] + P2<-P2[,cooler_gas:= Cooler_Gas] + P2<-P2[,seweragenetwork:= SewageNetwork] + }else{ + + booleanvars <- c("car", "motorcycle", "bike", "radio", "cassette", "tvbw", + "tvcr", "vcr", "computer", "cellphone", "freezer", + "refrigerator", "frez_refrig", "oven", "vacuum", "washer", + "sewing", "fan", "cooler_water_movable", + "cooler_gas_movable", "dishwasher", "Microwave", "none", + "pipewater", "electricity", "pipegas", "phone", "internet", + "bathroom", "kitchen", "cooler", "centralcooler", + "centralheat", "pakage", "cooler_gas", "seweragenetwork", + "party_month", "party_year", "ceremony_month", + "ceremony_year", "homerepaire_month", "homerepaire_year", + "prtrip_month", "prtrip_year", "frtrip_month", "frtrip_year", + "bastari_month", "bastari_year", "operation_month", + "operation_year", "other_month", "other_year", "other_name", + "noceremony", "noceremony_year") + booleanvars <- intersect(booleanvars,names(P2)) + for (var in booleanvars) P2[, (var):= get(var)==1] + } + HHHouseProperties<-P2 + + save(HHHouseProperties, file=paste0(Settings$HEISProcessedPath,"Y",year, + "HHHouseProperties.rda")) +} + +endTime <- proc.time() +cat("\n\n============================\nIt took", + (endTime-startTime)[3], "seconds.") \ No newline at end of file diff --git a/R/131-HHFood Expenditures.R b/R/131-HHFood Expenditures.R new file mode 100644 index 00000000..f421d861 --- /dev/null +++ b/R/131-HHFood Expenditures.R @@ -0,0 +1,46 @@ +# 131-HHFoods.R +# Builds the Food expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() +cat("\n\n================ HHFoods =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Food)) + +for (year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:", year, "\n")) + load(file = paste0(Settings$HEISRawPath, "Y", year, "Raw.rda")) + ft <- FoodTables[Year == year] + tab <- ft$Table + if (is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","FoodExpenditure","BuyingMethod")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + TF <- TF[,FoodExpenditure:=as.numeric(FoodExpenditure)] + TF <- TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + + TotalFoodExpData <- TF[,lapply(.SD,sum),by=HHID,.SDcols=c("FoodExpenditure")] + save(TotalFoodExpData, file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) +} +endTime <- proc.time() +cat("\n\n============================\nIt took",(endTime-startTime)[3], "seconds.") diff --git a/R/132-HHNonFood Expenditures.R b/R/132-HHNonFood Expenditures.R new file mode 100644 index 00000000..a0984151 --- /dev/null +++ b/R/132-HHNonFood Expenditures.R @@ -0,0 +1,119 @@ +# 141-Groups Expenditures.R +# Builds the Groups Expenditures data.table for households +# +# Copyright © 2017-2020: Arin Shahbazian, Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() +cat("\n\n================ NonFood Expenditures =============================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + +sections_names <- c("Cigar","Cloth","Communication","Energy","Furniture", + "Hygiene","Medical","Transportation","Communication", + "Amusement","Education","Hotel","Restaurant","Other", + "Investment") +# House has different code / durables are in another file +for(section in sections_names){ + section_sheet <- eval(parse(text = paste0("Settings$MDS_",section))) + cat("\n\n================",section,"=====================================\n") + SectionTables <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=section_sheet)) + + for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + st <- SectionTables[Year==year] + tab <- st$Table + if(is.na(tab)) + next + UTS <- Tables[[paste0("U",year,tab)]] + RTS <- Tables[[paste0("R",year,tab)]] + TS <- rbind(UTS,RTS) + for(n in names(TS)){ + x <- which(st==n) + if(length(x)>0) + setnames(TS,n,names(st)[x]) + } + pcols <- intersect(names(TS),c("HHID","Code",paste0(section,"_Exp"))) + TS <- TS[,pcols,with=FALSE] + if(!is.na(st$StartCode)){ + TS <- TS[Code %in% st$StartCode:st$EndCode] + } + + TS[,(paste0(section,"_Exp")):=as.numeric(get(paste0(section,"_Exp")))] + TS[,Code:=NULL] + TS[is.na(TS)] <- 0 + + eval(parse(text = paste0(section,"Data <- TS[,lapply(.SD,sum),by=HHID]"))) + eval(parse(text = paste0("save(",section, + "Data, file =paste0(Settings$HEISProcessedPath,\"Y\",year,\"", + section,"s.rda\"))"))) + eval(parse(text = paste0("cat(section,\":\",",section, + "Data[,mean(",section,"_Exp)])"))) + } +} + + +cat("\n\n================ Section4:HHHouse =====================================\n") +HouseTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_House)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\t")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + ty <- HouseTables[Year==year][,1:10] + tab <- ty$Table + + UTL <- Tables[[paste0("U",year,tab)]] + RTL <- Tables[[paste0("R",year,tab)]] + TL <- rbind(UTL,RTL) + for(n in names(TL)){ + x <- which(ty==n) + if(length(x)>0) + setnames(TL,n,names(ty)[x]) + } + pcols <- intersect(names(TL),c("HHID","Code","House_Exp")) + TL <- TL[,pcols,with=FALSE] + TL <- TL[Code %in% ty$StartCode:ty$EndCode] + TL[,House_Exp:=as.numeric(House_Exp)] + mcs <- ty$MainCodes + mcs <- substr(mcs,1,nchar(mcs)-1) + maincodes <- eval(parse(text=paste0("c(",mcs,")"))) + rmcs <- ty$RM + rmcs <- substr(rmcs,1,nchar(rmcs)-1) + rmcodes <- eval(parse(text=paste0("c(",rmcs,")"))) + TLx <- TL[Code %in% maincodes] + TLx <- TLx[,.(House_Exp=sum(House_Exp)),by=.(HHID,Code)] + TLx[Code %in% rmcodes,Code:=max(rmcodes)] + TLx[,hhmincode:=min(Code),by=HHID] + TLx <- TLx[Code==hhmincode] + TLx <- TLx[,.(MainHouse_Exp=sum(House_Exp)),by=.(HHID)] + + TL[,Code:=NULL] + TL[is.na(TL)] <- 0 + + HouseData <- TL[,lapply(.SD,sum),by=HHID] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year, + "HHHouseProperties.rda")) + HousePropData <- HHHouseProperties[,.(HHID,room,area)] + HousePropData[area==0,area:=NA] + HousePropData <- merge(HousePropData,TLx,by = "HHID", all = TRUE) + HousePropData <- HousePropData[,MeterPrice:=MainHouse_Exp/area] + + HouseData <- merge(HouseData,HousePropData,by = "HHID", all = TRUE) + HouseData <- HouseData[,.(HHID,House_Exp,MainHouse_Exp,MeterPrice)] + save(HouseData, file=paste0(Settings$HEISProcessedPath,"Y",year,"House.rda")) +} + +endTime <- proc.time() +cat("\n\n=========================\nIt took",(endTime-startTime)[3], "seconds.") diff --git a/R/133-HHDurableExpenditures.R b/R/133-HHDurableExpenditures.R new file mode 100644 index 00000000..ff2ddd29 --- /dev/null +++ b/R/133-HHDurableExpenditures.R @@ -0,0 +1,87 @@ +# 133-HHDurableExpenditures.R +# Builds the Durbable Expenditures detailed data.table for households +# +# Copyright © 2017-2020: Arin Shahbazian, Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + + +cat("\n\n================ Section13:HHDurable ==============================\n") +DurableTables <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_Durable)) +DurableItems <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_DurableItems)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- DurableTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Durable_Exp","Durable_Sale")) + TC <- TC[,pcols,with=FALSE] + + # if(year >= 84){ + TC[,Durable_Exp:=as.numeric(Durable_Exp)/12] + TC[,Durable_Sale:=as.numeric(Durable_Sale)/12] +# } + + DurableData_Detail <- merge(TC,DurableItems,by="Code",all = TRUE) + DurableData_Detail <- DurableData_Detail[!is.na(HHID)] + DurableData_Detail[is.na(Durable_Exp), Durable_Exp:=0] + DurableData_Detail[is.na(Durable_Sale), Durable_Sale:=0] + + + save(DurableData_Detail, file = paste0(Settings$HEISProcessedPath,"Y",year, + "DurableData_Detail.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + itemslist <- c("cellphone","washer","dishwasher","car", + "oven","tvbw","tvcr","refrigerator","frez_refrig","freezer", + "computer","cooler_gas","cooler_gas_movable") + + for(item in itemslist) + if(!(item %in% names(HHHouseProperties))){ + HHHouseProperties[,(item):=FALSE] + } + + OwnsDurableItems <- HHHouseProperties[,.(HHID, + Cellphone=cellphone*1, + Washer=(washer|dishwasher)*1, + Car_Repair=car*1, + Car_Tire=car*1, + Oven=oven*1, + TV=(tvbw |tvcr)*1, + Refrigrator=(refrigerator|frez_refrig|freezer)*1, + Car=car*1, + Computer=computer*1, + AC=(cooler_gas |cooler_gas_movable)*1, + Car_Motor=car*1)] + + save(OwnsDurableItems,file=paste0(Settings$HEISProcessedPath,"Y",year, + "OwnsDurableItems.rda")) +} + +endTime <- proc.time() +cat("\n\n=========================\nIt took",(endTime-startTime)[3], "seconds.") diff --git a/R/141-Breaking Durable goods in four sections.R b/R/141-Breaking Durable goods in four sections.R new file mode 100644 index 00000000..0a14d1b4 --- /dev/null +++ b/R/141-Breaking Durable goods in four sections.R @@ -0,0 +1,53 @@ +#141-Breaking Durable goods in four section +# +# Copyright © 2020: Arin Shahbazian, Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() +cat("\n\n================ Breaking Durable goods in four groups =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +DurableGroups <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_DurableGroups)) + +mst <- min(DurableGroups$StartYear) + +for(year in (max(Settings$startyear,mst):Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"DurableData_Detail.rda")) + + g1 <- DurableGroups[year >= StartYear & year <= EndYear & Group==1]$Code + g2 <- DurableGroups[year >= StartYear & year <= EndYear & Group==2]$Code + g3 <- DurableGroups[year >= StartYear & year <= EndYear & Group==3]$Code + g4 <- DurableGroups[year >= StartYear & year <= EndYear & Group==4]$Code + + D1 <- DurableData_Detail[Code %in% g1, .(Add_to_NonDurable = sum(Durable_Exp,na.rm = TRUE)),by=HHID] + D2 <- DurableData_Detail[Code %in% g2, .(Durable_Dep = sum(Durable_Exp,na.rm = TRUE)),by=HHID] + D3 <- DurableData_Detail[Code %in% g3, .(Durable_NoDep = sum(Durable_Exp,na.rm = TRUE)),by=HHID] + D4 <- DurableData_Detail[Code %in% g4, .(Durable_Emergency = sum(Durable_Exp,na.rm = TRUE)),by=HHID] + + Durable_4Groups <- merge(D1,D2,all=TRUE) + Durable_4Groups <- merge(Durable_4Groups,D3,all=TRUE) + Durable_4Groups <- merge(Durable_4Groups,D4,all = TRUE) + + Durable_4Groups[is.na(Durable_4Groups)] <- 0 + + gunion <- union(union(g1,g2),union(g3,g4)) + + Dx <- DurableData_Detail[! (Code %in% gunion),] + if(nrow(Dx)>0) print(table(Dx[,Code])) + + save(Durable_4Groups, file=paste0(Settings$HEISProcessedPath,"Y",year,"Durable_4Groups.rda")) + +} + +endTime <- proc.time() +cat("\n\n============================\nIt took",(endTime-startTime)[3], "seconds.") \ No newline at end of file diff --git a/R/142-Calculate_OwnedDurableItemsDepreciation_FunctionDef.R b/R/142-Calculate_OwnedDurableItemsDepreciation_FunctionDef.R new file mode 100644 index 00000000..262c1dcf --- /dev/null +++ b/R/142-Calculate_OwnedDurableItemsDepreciation_FunctionDef.R @@ -0,0 +1,59 @@ +Calculate_OwnedDurableItemsDepreciation <- function(DurableData_ExpDetail, + DurableItems_OwningDetail, + by="Item", + Decile=NULL, + DurableItems=NA){ + + Ownsm <- melt(data = DurableItems_OwningDetail,id.vars = "HHID", + measure.vars = names(DurableItems_OwningDetail)[-1], + variable.name = "Item",value.name = "Owns") + Ownsm <- Ownsm[Owns==1] + if(is.null(Decile)){ + by = setdiff(by,"Decile") + DurableDepr <- data.table(Item=DurableItems$Item) + }else{ + DurableData_ExpDetail <- merge(DurableData_ExpDetail,Decile,by="HHID") + Ownsm <- merge(Ownsm,Decile,by="HHID") + + DurableDepr <- data.table(expand.grid(Item=DurableItems$Item,Decile=factor(1:10))) + } + # if(is.na(DurableItems)){ + # library(readxl) + # DurableItems <- data.table(read_excel(Settings$MetaDataFilePath, + # sheet=Settings$MDS_DurableItemsDepr)) + # } + DurableValues <- DurableData_ExpDetail[,.(Value=mean(Durable_Exp)),by=by] + DurableDepr <- merge(DurableDepr,DurableValues,by=by,all.x = TRUE) + DurableDepr <- merge(DurableDepr,DurableItems,by="Item") + + f <- function(X){ + v <- X$Value + d <- as.integer(as.character(X$Decile)) + d2 <- d^2 + d3 <- d^3 + mdl <- lm(v~d+d2+d3) + vp <- predict(mdl,newdata = data.frame(d=d,d2=d2,d3=d3)) + return(vp) + } + if("Decile" %in% by){ + + DurableDepr <- DurableDepr[order(Item,Decile)] + DurableDepr[,estVal:=f(.SD),by=Item] + + for(i in unique(DurableDepr$Item)) + for(d in 9:1){ + ev <- DurableDepr[Item==i & as.integer(Decile)==d]$estVal + evnext <- DurableDepr[Item==i & as.integer(Decile)==d+1]$estVal + if(ev>evnext) + DurableDepr[Item==i & as.integer(Decile)==d,estVal:=evnext] + } + DurableDepr[,DepreciationValue:=estVal*Depri/100] + }else{ + DurableDepr[,DepreciationValue:=Value*Depri/100] + } + D <- merge(Ownsm,DurableDepr,by=by) + + OwnedDurableItemsDepreciation <- D[,.(OwnedDurableItemsDepreciation=sum(.SD$DepreciationValue)),by=HHID] + + return(OwnedDurableItemsDepreciation) +} diff --git a/R/143-CalculateDepreciation-FirstRound-BasedOnTotalSample.R b/R/143-CalculateDepreciation-FirstRound-BasedOnTotalSample.R new file mode 100644 index 00000000..52c2af1e --- /dev/null +++ b/R/143-CalculateDepreciation-FirstRound-BasedOnTotalSample.R @@ -0,0 +1,47 @@ +# 143-CalculateDepreciation based on total sample averages +# +# Copyright © 2020: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() +cat("\n\n================ Durable Items Depretiation =======================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +source("142-Calculate_OwnedDurableItemsDepreciation_FunctionDef.R") +DurableItems <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_DurableItemsDepr)) + +#year <- 98 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file = paste0(Settings$HEISProcessedPath,"Y", + year,"DurableData_Detail.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year, + "OwnsDurableItems.rda")) + + + OwnedDurableItemsDepreciation <- + Calculate_OwnedDurableItemsDepreciation( + DurableData_ExpDetail = DurableData_Detail, + DurableItems_OwningDetail = OwnsDurableItems, + by = "Item", + Decile = NULL, + DurableItems = DurableItems) + + + save(OwnedDurableItemsDepreciation, + file=paste0(Settings$HEISProcessedPath,"Y", + year,"OwnedDurableItemsDepreciation.rda")) +} + +endTime <- proc.time() +cat("\n\n=========================\nIt took",(endTime-startTime)[3], "seconds.") \ No newline at end of file diff --git a/R/151-Food Groups for Calorie.R b/R/151-Food Groups for Calorie.R new file mode 100644 index 00000000..89d2e756 --- /dev/null +++ b/R/151-Food Groups for Calorie.R @@ -0,0 +1,116 @@ +# 151-Food Groups for calorie.R ---- and for prices +# Builds the Food Groups data.table for households +# +# Copyright © 2018-2020: Arin Shahbazian & Majid Einian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +leapyears <- c(seq(1280,1308,by=4), + seq(1313,1341,by=4), + seq(1346,1370,by=4), + seq(1375,1403,by=4), + seq(1408,1469,by=4)) + +library(data.table) +library(stringr) +library(readxl) + +cat("\n\n================ FoodGroups =====================================\n") +TFoodGroups <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_FoodGroups)) +FoodTypeTables <- list() +for(i in 1:nrow(TFoodGroups)) + FoodTypeTables[[i]] <- data.table(read_excel(Settings$MetaDataFilePath,sheet=TFoodGroups[i,SheetName])) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + BigFData <- data.table(HHID=NA_integer_,FoodCode=NA_integer_, + FoodType=NA_character_,Price=NA_real_, + Expenditure=NA_real_,FGrams=NA_real_, + FoodKCalories=NA_real_, + FoodProtein=NA_real_)[0] + + + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + + if(length(which(is.na(HHBase$Month)))>1){ # For years withouout month info` + DayCount <- HHBase[,.(HHID,Days=ifelse(Quarter<=2,31,30))] + }else{ + DayCount <- HHBase[,.(HHID, + Days=ifelse(Month<=6,31, + ifelse(Month<=11,30, + ifelse(Year %in% leapyears,30,29))))] + } + + for(i in 1:nrow(TFoodGroups)){ + cat(paste0(TFoodGroups[i,SheetName],", "),"\t") + + ThisFoodTypeTable <- FoodTypeTables[[i]] + ft <- ThisFoodTypeTable[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + if(year %in% 63:82){ + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Expenditure","Price")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + TF <- TF[!(is.na(Kilos) & is.na(Expenditure) & is.na(Price))] + + TF[,Kilos:=as.numeric(Kilos)] + + TF[,FGrams:=(Kilos*1000)] + + } else if(year >= 83){ + pcols <- intersect(names(TF),c("HHID","Code","Grams","Kilos","Expenditure","Price")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + TF <- TF[!(is.na(Grams) & is.na(Kilos) & is.na(Expenditure) & is.na(Price))] + + TF[,Price:=as.numeric(Price)] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,Expenditure:=as.numeric(Expenditure)] + + TF[is.na(Grams) & !is.na(Kilos),Grams:=0] + TF[is.na(Kilos) & !is.na(Grams),Kilos:=0] + TF[,FGrams:=(Kilos*1000+Grams)] + } + + TF[is.na(Price), Price:= Expenditure/(FGrams/1000)] + TF[is.na(FGrams),FGrams:=Expenditure/Price*1000] + + #TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + + FData <- TF[,lapply(.SD,sum),by=.(HHID,Code)] + FData[!is.na(FGrams), Price:=Expenditure/(FGrams/1000)] + FData[, FoodType:=TFoodGroups[i,FoodType]] + FData <- merge(FData,DayCount) + FData[, FoodKCalories:=TFoodGroups[i,KCalories]*FGrams/Days] + FData[, FoodProtein:=TFoodGroups[i,Protein]*FGrams/Days] + FData[is.infinite(Price),Price:=NA] + + BigFData <- rbind(BigFData, + FData[,.(HHID,FoodCode=Code,FoodType,Price,Expenditure,FGrams,FoodKCalories,FoodProtein)]) + + } + save(BigFData, file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + cat("\n\n++========++\n||",nrow(BigFData[!is.na(FoodKCalories)]),"||\n++========++\n") + +} +endtime <- proc.time() +cat("\n\n==============Finish==============\nIt took ",(endtime-starttime)[3],"seconds.") \ No newline at end of file diff --git a/R/152-Total Food Calories.R b/R/152-Total Food Calories.R new file mode 100644 index 00000000..d2ce4c27 --- /dev/null +++ b/R/152-Total Food Calories.R @@ -0,0 +1,30 @@ +# 152-Total_Food_Calories.R +# +# Copyright © 2017-2020:Arin Shahbazian, Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +startTime <- proc.time() +cat("\n\n================ Total Calories =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + FoodNutritionData <- BigFData[,.(FoodKCaloriesHH=sum(FoodKCalories), + FoodProteinHH=sum(FoodProtein)),by=HHID] + + FoodNutritionData <- FoodNutritionData[FoodKCaloriesHH<100000] # arbitrary removal of outliers + # TODO: remove households that had some event (religious, weddings, ...) instead of this arbitrary removal + + save(FoodNutritionData, file = paste0(Settings$HEISProcessedPath,"Y",year,"FoodNutritionData.rda")) +} +endTime <- proc.time() +cat("\n\n============================\nIt took ",(endTime-startTime)[3],"seconds.") diff --git a/R/153-Specification of food original groups.R b/R/153-Specification of food original groups.R new file mode 100644 index 00000000..6aeacdab --- /dev/null +++ b/R/153-Specification of food original groups.R @@ -0,0 +1,32 @@ +# 153-Specification of food original groups.R + +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(readxl) + +cat("\n\n================ FoodGroups =====================================\n") +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) + + BigFData[,OriginalFoodExpenditure:=Expenditure] + NfoodExp<-BigFData[,.(HHID,OriginalFoodExpenditure)] + NfoodExp <- NfoodExp[,lapply(.SD,sum),by=HHID] + FoodExpData<-merge(TotalFoodExpData,NfoodExp,all.x = TRUE) + FoodExpData[is.na(FoodExpData)] <- 0 + FoodExpData[,FoodOtherExpenditure:=FoodExpenditure-OriginalFoodExpenditure] + save(FoodExpData, file = paste0(Settings$HEISProcessedPath,"Y",year,"FoodExpData.rda")) +} + +cat("\n\n==============Finish==============\nIt took ") +endtime <- proc.time() +cat((endtime-starttime)[3],"seconds.") diff --git a/R/161-Step1-MergeData.R b/R/161-Step1-MergeData.R new file mode 100644 index 00000000..da6fae15 --- /dev/null +++ b/R/161-Step1-MergeData.R @@ -0,0 +1,68 @@ +#161-Step1-MergeData.R +# +# Copyright © 2018-2020: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodNutritionData.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodExpData.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + for(G in c("Cigars","Cloths","Amusements","Communications", + "Educations", "Furnitures","Hotels","Energys","House", "Medicals", + "Hygienes","Transportations","Others", "Restaurants", + "Durable_4Groups","OwnedDurableItemsDepreciation")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + + FoodNutritionData <- FoodNutritionData[FoodKCaloriesHH>0] + + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodNutritionData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodExpData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelData,by =c("HHID"),all=TRUE) + MD<-merge(MD,RestaurantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HygieneData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,Durable_4Groups,by =c("HHID"),all=TRUE) + MD<-merge(MD,OwnedDurableItemsDepreciation,by =c("HHID"),all=TRUE) + + #Calculate Monthly Total Expenditures + for (col in Settings$w) + MD[is.na(get(col)), (col) := 0] + + MD[,Total_Exp_Month := Reduce(`+`, .SD), .SDcols=Settings$w] + MD[,Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=Settings$nw] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN1.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)[3],"seconds.") diff --git a/R/162-Step2-CaloryEqSize.R b/R/162-Step2-CaloryEqSize.R new file mode 100644 index 00000000..a3a4d40c --- /dev/null +++ b/R/162-Step2-CaloryEqSize.R @@ -0,0 +1,38 @@ +#162- Step 2.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n============== Calculationg Calorie Equal size ===================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + cat("\n") + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN1.rda")) + + MD<-MD[Size!=0 & OriginalFoodExpenditure!=0 & !is.na(FoodKCaloriesHH)] + + MD[,EqSizeCalory:=Calorie_Need_WorldBank/ + Settings$KCaloryNeed_Adult_WorldBank] + MD[,EqSizeCalory2:=Calorie_Need_NutritionInstitute/ + Settings$KCaloryNeed_Adult_NutritionInstitute] + MD[,EqSizeCalory3 :=(Size-NKids) + + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN2.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/163-Step3-Add_OutofHouseCalories.R b/R/163-Step3-Add_OutofHouseCalories.R new file mode 100644 index 00000000..826ecb04 --- /dev/null +++ b/R/163-Step3-Add_OutofHouseCalories.R @@ -0,0 +1,46 @@ +#163- Step 3.R +# +# Copyright © 2018-2020: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN2.rda")) + + + MD[,FoodExpenditure_Per :=FoodExpenditure/EqSizeCalory] + MD[,OriginalFoodExpenditure_Per :=OriginalFoodExpenditure/EqSizeCalory] + MD[,FoodKCaloriesHH_Per:=FoodKCaloriesHH/EqSizeCalory] + MD[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] + + #Calculate per_Calory from Restaurants + MD[,Calory_Price:=(OriginalFoodExpenditure_Per/FoodKCaloriesHH_Per)] + MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)] + MD[,RestaurantKCalories:=(Settings$OutFoodKCXShare*Restaurant_Exp)/Calory_Price_Area] + MD[is.na(RestaurantKCalories),RestaurantKCalories:=0] + + MD[,TFoodKCaloriesHH:=FoodKCaloriesHH+RestaurantKCalories] + MD[,TOriginalFoodExpenditure:=OriginalFoodExpenditure+Restaurant_Exp] + + MD[,TOriginalFoodExpenditure_Per :=TOriginalFoodExpenditure/EqSizeCalory] + MD[,TFoodKCaloriesHH_Per:=TFoodKCaloriesHH/EqSizeCalory] + + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ",(endtime-starttime)[3],"seconds.") \ No newline at end of file diff --git a/R/164-Step4-IterativeRealDeciles.R b/R/164-Step4-IterativeRealDeciles.R new file mode 100644 index 00000000..97103b97 --- /dev/null +++ b/R/164-Step4-IterativeRealDeciles.R @@ -0,0 +1,203 @@ +#164-Step4-IterativeRealDeciles.R +# +# Copyright © 2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +#library(ggplot2) +#library(compare) +source("142-Calculate_OwnedDurableItemsDepreciation_FunctionDef.R") +# Function Defs --------------------------------------------------------------------------------- +CalcTornqvistIndex <- function(DataTable){ + #DataTable <- SMD + DataTable <- DataTable[,MeterPrice:=ifelse(tenure=="Free"|tenure=="Other"|tenure=="AgainstService" + ,NA,MeterPrice)] + DataTable <- DataTable[,House_Exp:=ifelse(tenure=="Free"|tenure=="Other"|tenure=="AgainstService" + ,NA,House_Exp)] + + X <- DataTable[,.(N=.N,wj1=weighted.median(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wj2=weighted.median(House_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + pj1=weighted.median(Bundle_Value,Weight,na.rm = TRUE), + pj2=weighted.median(MeterPrice,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,wj:=wj1+wj2] + X[,wj1:=wj1/wj] + X[,wj2:=wj2/wj] + XTeh<-X[NewArea_Name=="Sh_Tehran"] + wk1<-XTeh$wj1 # k == Sh_Tehran + wk2<-XTeh$wj2 + pk1<-XTeh$pj1 + pk2<-XTeh$pj2 + + X[,SimpleIndex:= .5 * pj1/pk1 + .5 * pj2/pk2] + X[,AnotherIndex:= wj1 * pj1/pk1 + wj2 * pj2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wj1)/2 * log(pj1/pk1) + + (wk2+wj2)/2 * log(pj2/pk2) ) ] + + return(X[,.(Region,NewArea_Name,PriceIndex=TornqvistIndex)]) +} + + +DoDeciling <- function(DataTable,PriceIndexDT){ + + if("PriceIndex" %in% names(DataTable)){ + DataTable <- DataTable[,PriceIndex:=NULL] + } + DataTable <- merge(DataTable,PriceIndexDT,by=c("Region","NewArea_Name")) + + + DataTable <- DataTable[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] # I removed Region from ordering, deciling is not divided into rural/urban (M.E. 5/11/2020) + DataTable <- DataTable[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + DataTable <- DataTable[,xr25th:=.SD[25,Total_Exp_Month_Per_nondurable_Real],by=.(Region,NewArea_Name)] + DataTable <- DataTable[,First25:=ifelse(Total_Exp_Month_Per_nondurable_Real<=xr25th,1,0)] + #Calculate deciles by weights + DataTable <- DataTable[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + DataTable <- DataTable[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + DataTable[,crw:=NULL] + DataTable[,xr25th:=NULL] + + return(DataTable) +} + +UpdateForDurableDepr <- function(DataTable,ODIDep){ + DataTable[,OwnedDurableItemsDepreciation:=NULL] + DataTable <- merge(DataTable,ODIDep) + + for (col in Settings$w) + DataTable[is.na(get(col)), (col) := 0] + + DataTable[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=Settings$w] + DataTable[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=Settings$nw] + + DataTable[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + DataTable[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] +} + +DurableItems <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_DurableItemsDepr)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file = paste0(Settings$HEISProcessedPath,"Y", + year,"DurableData_Detail.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year, + "OwnsDurableItems.rda")) + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + SMD <- MD[,.(HHID,Region, + House_Exp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_NutritionInstitute, + Weight,MeterPrice,Size,EqSizeOECD + ,OriginalFoodExpenditure,FoodOtherExpenditure, Cigar_Exp, Cloth_Exp, + Amusement_Exp, Communication_Exp, + Energy_Exp, Furniture_Exp, Hotel_Exp,Restaurant_Exp, Hygiene_Exp, + Transportation_Exp, Other_Exp + ,Add_to_NonDurable,Medical_Exp, + Durable_NoDep,Durable_Emergency,OwnedDurableItemsDepreciation)] + SMD <- merge(SMD,HHHouseProperties[,.(HHID,tenure)],by="HHID") + + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_NutritionInstitute/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_NutritionInstitute/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + # S1<-SMD[,.(HHID,Region,NewArea_Name,TFoodKCaloriesHH_Per,Bundle_Value)] + + + PriceDT <- CalcTornqvistIndex(SMD) + + SMD <- DoDeciling(SMD,PriceDT) + + OwnedDurableItemsDepreciation <- + Calculate_OwnedDurableItemsDepreciation( + DurableData_ExpDetail = DurableData_Detail, + DurableItems_OwningDetail = OwnsDurableItems, + by = c("Item","Decile"), + Decile = SMD[,.(HHID,Decile)], + DurableItems = DurableItems) + + SMD <- UpdateForDurableDepr(SMD,OwnedDurableItemsDepreciation) + + SMD <- SMD[,IPboPct:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + # IPboPct : InitialPoorBasedOnRealIterativePercentile + # IPboPctLI: InitialPoorBasedOnRealIterativePercentileLastIteration + + SMD[,IPboPctLI:=1] + i <- 0 + while(SMD[,sum((IPboPct-IPboPctLI)^2)]>0.001*nrow(SMD) & i <15){ + i <- i+1 + SMD[,IPboPctLI:=IPboPct] + + SMDIterationPoor <- SMD[IPboPctLI==1 | First25==1 ] + + if(nrow(SMDIterationPoor[,.N,by=.(Region,NewArea_Name)])<78) + stop("HERE Some Area goes missing!") + if(min(SMDIterationPoor[,.N,by=.(Region,NewArea_Name)]$N)==0) + stop("HERE Some Area goes missing!") + + PriceDTBasedOnThisIterationPoor <- CalcTornqvistIndex(SMDIterationPoor) + + # print(PriceDTBasedOnThisIterationPoor[Region=="Rural" & NewArea_Name=="Semnan",]) + SMD <- DoDeciling(SMD,PriceDTBasedOnThisIterationPoor) + + OwnedDurableItemsDepreciation <- + Calculate_OwnedDurableItemsDepreciation( + DurableData_ExpDetail = DurableData_Detail, + DurableItems_OwningDetail = OwnsDurableItems, + by = c("Item","Decile"), + Decile = SMD[,.(HHID,Decile)], + DurableItems = DurableItems) + + SMD <- UpdateForDurableDepr(SMD,OwnedDurableItemsDepreciation) + + + SMD <- SMD[,IPboPct:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + + cat("\n",i,":",SMD[,sum((IPboPct-IPboPctLI)^2)]) + } + + setnames(SMD,"IPboPct","InitialPoor") # or maybe InitialPoorBasedOnRealIterativePercentile ! + + SMD <- SMD[,setdiff(names(SMD),c("First25","IPboPctLI")),with=FALSE] + + mdset <- setdiff(names(MD),names(SMD)) + MD <- merge(MD[,c("HHID",mdset),with=FALSE],SMD,by="HHID") + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + #Decile_MD <- MD [,.(HHID,Total_Exp_Month_Per_nondurable,Size,Weight)] + #Decile_MD <- Decile_MD[order(Total_Exp_Month_Per_nondurable)] + #Decile_MD <- Decile_MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] + #Decile_MD <- Decile_MD[,Decile_non_real:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + #MD <- merge(MD,Decile_MD[,c("HHID","Decile_non_real")],by="HHID") + #save(Decile_MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"Decile_non_real.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/165-Step5-AddClusterInfo.R b/R/165-Step5-AddClusterInfo.R new file mode 100644 index 00000000..3cb8fd96 --- /dev/null +++ b/R/165-Step5-AddClusterInfo.R @@ -0,0 +1,30 @@ +#165-Step 5- Clustering.R ----- Clusters are predefined now, not calculated here +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Saving Cluster Info===============================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +#ClusterInfo <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_GeoX)) +ClusterInfo <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_GeoX_New)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + MD<-merge(MD,ClusterInfo,by=c("NewArea","NewArea_Name","Region")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year, + "InitialPoorClustered.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"],"seconds.") \ No newline at end of file diff --git a/R/166-1-FPlinePrediction.R b/R/166-1-FPlinePrediction.R new file mode 100644 index 00000000..84b82059 --- /dev/null +++ b/R/166-1-FPlinePrediction.R @@ -0,0 +1,161 @@ +# 166-Step6-FoodPoor.R: Calculate base year basket cost in current year prices +# for each cluster. and find FoodPoor +# +# Copyright © 2019-2020: Arin Shahbazian & Majid Einian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(spatstat) +library(data.table) +library(dplyr) +library(tidyr) +library(writexl) + +BigsdTable <- data.table() +year<-Settings$baseBundleyear + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) +PriceCodes<-as.data.table(read_excel(Settings$PriceCodesFilePath,Settings$PCS)) + +MD[,Selected_Group:=ifelse((Region=="Urban" & Decile==4) | + (Region=="Rural" & Decile==3),1,0)] + +Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) +Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) +Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size, + EqSizeCalory,Selected_Group)],by="HHID") +Bfd2[is.na(Bfd2)]<-0 +Bfd2[Price<0.1,Price:=NA] + +BaseYearBasket <- Bfd2[Selected_Group==1, + .(FGramspc=weighted.mean(FGrams/EqSizeCalory,Weight*Size), + FKCalspc=weighted.mean(FoodKCalories/EqSizeCalory,Weight*Size)), + by=.(FoodType,Region)] +BaseYearBasket[,BasketCals:=sum(FKCalspc),by=Region] +BaseYearBasket[,StandardFGramspc:=FGramspc*Settings$KCaloryNeed_Adult_WorldBank/BasketCals] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + for (month in (Settings$startmonth:Settings$endmonth)) { + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + + MD[,Selected_Group:=ifelse((Decile==5) | (Decile==2) | + (Decile==3) | (Decile==4),1,0)] + ###################### + year<-year+1 + cat(paste0("\nmonth:",month,"\t")) + + #l <- dir(path=Settings$CPIPath,pattern=glob2rx(paste0("Y",year,"M",month,".*")),ignore.case = TRUE) + #Price_month <- as.data.table(read_excel(path=paste0(Settings$CPIPath, l))) + + c <- dir(path=Settings$CPIPath,pattern=glob2rx(paste0("CPIY",year,"M",month,".*")),ignore.case = TRUE) + CPI_month <- as.data.table(read_excel(path=paste0(Settings$CPIPath, c))) + + year<-year-1 + c <- dir(path=Settings$CPIPath,pattern=glob2rx(paste0("CPIY",year,".*")),ignore.case = TRUE) + CPI_month_lag <- as.data.table(read_excel(path=paste0(Settings$CPIPath, c))) + #Price_month <- Price_month %>% gather(ProvinceCode,Price, 2:32) + + #Price_month <- as.data.table(Price_month) + #Price_month <- Price_month[,ProvinceCode:=as.numeric(ProvinceCode)] + #Price_month <- Price_month[Price==0,Price:=NA] + + BigFData<-BigFData[,code:=FoodCode] + BigFData<-merge(BigFData,PriceCodes,by=c("code"),all.x = TRUE) + Province<-MD[,.(HHID,ProvinceCode)] + BigFData<-merge(BigFData,Province,by=c("HHID"),all.x = TRUE) + BigFData<-BigFData[,Price_O:=Price] + BigFData<-BigFData[,Price:=NULL] + + #BigFData<-merge(BigFData,Price_month,by=c("Pcode1","ProvinceCode"),all.x = TRUE) + #BigFData<-BigFData[,Price1:=Price] + #BigFData<-BigFData[,Price:=NULL] + + #Price_month <- Price_month[,Pcode2:=Pcode1] + #BigFData<-merge(BigFData,Price_month[,.(Pcode2,ProvinceCode,Price)],by=c("Pcode2","ProvinceCode"),all.x = TRUE) + # BigFData<-BigFData[,Price2:=Price] + # BigFData<-BigFData[,Price:=NULL] + + #Price_month <- Price_month[,Pcode3:=Pcode1] + #BigFData<-merge(BigFData,Price_month[,.(Pcode3,ProvinceCode,Price)],by=c("Pcode3","ProvinceCode"),all.x = TRUE) + #BigFData<-BigFData[,Price3:=Price] + #BigFData<-BigFData[,Price:=NULL] + + #for (col in c("Pcode1","Pcode2","Pcode3")) + # BigFData[is.na(get(col)), (col) := 0] + #BigFData$mean <- rowMeans(subset(BigFData, select = c("Price1","Price2","Price3")), na.rm = TRUE) + #BigFData<-BigFData[(Pcode1>0 | Pcode2>0 | Pcode3>0) ,Price := mean] + + + CPI_month1<-CPI_month/CPI_month_lag + CPI_month1<-CPI_month1[,CPIcode:=NULL] + CPI_month1<-cbind(CPI_month[,.(CPIcode)],CPI_month1) + CPI_month1 <- CPI_month1 %>% gather(ProvinceCode,CPI, 2:32) + CPI_month1 <- as.data.table(CPI_month1) + CPI_month1 <- CPI_month1[,ProvinceCode:=as.numeric(ProvinceCode)] + CPI_month1 <- CPI_month1[CPI==0,CPI:=NA] + BigFData<-merge(BigFData,CPI_month1,by=c("CPIcode","ProvinceCode"),all.x = TRUE) + BigFData<-BigFData[,Price:=Price_O*CPI] + ###################### + #Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) + #Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) + Bfd2 <- merge(BigFData,MD[,.(HHID,Region,Weight,Size,cluster3, + EqSizeCalory,Selected_Group)],by="HHID") + Bfd2[is.na(Bfd2)]<-0 + Bfd2[Price<0.1,Price:=NA] + Bfd3 <- Bfd2[Selected_Group==1 & !is.na(Price), + .(MedPrice=weighted.median(Price,Weight*Size*FGrams,na.rm = TRUE), + MeanPrice=weighted.mean(Price,Weight*Size*FGrams,na.rm = TRUE)), + by=.(FoodType,Region,cluster3)] + BasketPrice <- Bfd3[!is.na(MeanPrice), + .(Price=min(MeanPrice)), + by=.(FoodType,Region,cluster3)] + + BasketCost <- merge(BaseYearBasket,BasketPrice,by=c("FoodType","Region")) + BasketCost[,Cost:=(StandardFGramspc/1000)*Price] + FPLineBasket <- BasketCost[,.(FPLine=sum(Cost)),by=cluster3] + FPLineBasket<-FPLineBasket[,Year:=year] + FPLineBasket<-FPLineBasket[,Month:=month] + MD <- merge(MD,FPLineBasket,all.x=TRUE,by="cluster3") + sd <- MD + sd <- sd[,FPLineBasketyear:=weighted.mean(FPLine,Weight)] + sd <-sd[,Year:=year+1] + sd <-sd[,Month:=month] + sd <- unique(sd[,.(Year,Month,FPLineBasketyear)]) + BigsdTable <- rbind(BigsdTable,sd) + + + MD[,FoodPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + + cat(unlist(sd[Year==year+1 & Month==month])) + + if (year==Settings$startyear & month==Settings$startmonth){ + ClusterFPline<-FPLineBasket + CountryFPLine<-sd + + }else{ + ClusterFPline<-rbind(ClusterFPline,FPLineBasket) + CountryFPLine<-rbind(CountryFPLine,sd) + } + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"M",month,"FoodPoor.rda")) + + } + + + + + +} + +write_xlsx(CountryFPLine,"E:/FPLinePrediction.xlsx") + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"]," seconds") diff --git a/R/166-Step6-FoodPoor.R b/R/166-Step6-FoodPoor.R new file mode 100644 index 00000000..6a39dc81 --- /dev/null +++ b/R/166-Step6-FoodPoor.R @@ -0,0 +1,109 @@ +# 166-Step6-FoodPoor.R: Calculate base year basket cost in current year prices +# for each cluster. and find FoodPoor +# +# Copyright © 2019-2020: Arin Shahbazian & Majid Einian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(spatstat) +library(data.table) +BigsdTable <- data.table() +year<-Settings$baseBundleyear + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + +MD[,Selected_Group:=ifelse((Region=="Urban" & Decile==4) | + (Region=="Rural" & Decile==3),1,0)] + +Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) +Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) +Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size, + EqSizeCalory,Selected_Group)],by="HHID") +Bfd2[is.na(Bfd2)]<-0 +Bfd2[Price<0.1,Price:=NA] + +BaseYearBasket <- Bfd2[, + .(FGrams_0=sum(FGrams), + FoodKCalories_0=sum(FoodKCalories), + Region=first(Region), Weight=first(Weight), + Size=first(Size), EqSizeCalory=first(EqSizeCalory), + Selected_Group=first(Selected_Group)), + by=.(HHID,FoodType)] +BaseYearBasket <- BaseYearBasket[Selected_Group==1, + .(FGramspc=weighted.mean(FGrams_0/EqSizeCalory, + Weight*Size), + FKCalspc=weighted.mean(FoodKCalories_0/EqSizeCalory, + Weight*Size)), + by=.(FoodType,Region)] + +BaseYearBasket[,BasketCals:=sum(FKCalspc),by=Region] +BaseYearBasket[,StandardFGramspc:=FGramspc*Settings$KCaloryNeed_Adult_WorldBank/BasketCals] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + + MD[,Selected_Group:=ifelse((Decile==5) | (Decile==2) | + (Decile==3) | (Decile==4),1,0)] + + #Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) + #Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) + Bfd2 <- merge(BigFData,MD[,.(HHID,Region,Weight,Size,cluster3, + EqSizeCalory,Selected_Group)],by="HHID") + Bfd2[is.na(Bfd2)]<-0 + Bfd2[Price<0.1,Price:=NA] + Bfd2 <- Bfd2[, + .(Price=weighted.mean(Price,Weight*Size*FGrams,na.rm = TRUE), + FGrams=sum(FGrams), + cluster3=first(cluster3), + Region=first(Region), Weight=first(Weight), + Size=first(Size),Selected_Group=first(Selected_Group)), + by=.(HHID,FoodType)] + Bfd3 <- Bfd2[Selected_Group==1 & !is.na(Price), + .(MedPrice=weighted.median(Price,Weight*Size*FGrams,na.rm = TRUE), + MeanPrice=weighted.mean(Price,Weight*Size*FGrams,na.rm = TRUE)), + by=.(FoodType,Region,cluster3)] + BasketPrice <- Bfd3[!is.na(MeanPrice), + .(Price=min(MeanPrice)), + by=.(FoodType,Region,cluster3)] + + BasketCost <- merge(BaseYearBasket,BasketPrice,by=c("FoodType","Region")) + BasketCost[,Cost:=(StandardFGramspc/1000)*Price] + FPLineBasket <- BasketCost[,.(FPLine=sum(Cost)),by=cluster3] + + MD <- merge(MD,FPLineBasket,all.x=TRUE,by="cluster3") + sd <- MD + sd <- sd[,FPLineBasketyear:=weighted.mean(FPLine)] + sd <-sd[,Year:=year] + sd <- unique(sd[,.(Year,FPLineBasketyear)]) + BigsdTable <- rbind(BigsdTable,sd) + + + MD[,FoodPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + + cat(unlist(MD[cluster3==13,.(FPLine,weighted.mean(FoodPoor))][1])) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + + Meat<-BigFData[FoodType=="Meat",.(HHID,FoodType,FGrams)] + Meat2 <- Meat[,lapply(.SD,sum),by=HHID,.SDcols=c("FGrams")] + Meat2<-merge(MD[,.(HHID,Size,EqSizeCalory,Weight)],Meat2,all.x=TRUE) + Meat2[is.na(Meat2)]<-0 + cat(Meat2[,weighted.mean(FGrams/EqSizeCalory,Weight*Size)]) + cat(Meat2[,weighted.median(FGrams/EqSizeCalory,Weight*Size)]) +} + +#library(writexl) + +#write_xlsx(BigsdTable,"E:/FPLinebasket.xlsx") + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"]," seconds") + diff --git a/R/167-1-EngelPrediction.R b/R/167-1-EngelPrediction.R new file mode 100644 index 00000000..365cb7e4 --- /dev/null +++ b/R/167-1-EngelPrediction.R @@ -0,0 +1,165 @@ +# 167-Step7-Engel : Calculated Engel and modified Engel and Poverty Lines +# +# Copyright © 2018-2020: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Engel =====================================\n") +library(yaml) +mydir <- "E:/Refah Economy/IRHEIS-master update30-9/IRHEIS-master/R" +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +BigEngelTable <- data.table(Region=NA_character_,cluster3=NA_integer_, + N=NA_integer_,Engel=NA_real_, + FPLine=NA_real_,Year=NA_integer_,WW=NA_real_)[0] +BigEngelTable1 <- data.table() +Settings$startyear<-Settings$startyear-2 + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + if (year==Settings$predictionyear){ + year<-year-1 + for(month in (Settings$startmonth:Settings$endmonth)){ + cat(paste0("\nMonth:",month,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"M",month,"FoodPoor.rda")) + } + year<-year+1 + MD<-MD[,Year:=year] + }else{ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + + } + MD<-MD[,EngelH:=(TOriginalFoodExpenditure/Total_Exp_Month)] + + EngelD <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(EngelH,Weight), + FPLine=mean(FPLine)) + ,by=.(Region,cluster3)] + + #save(EngelD,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngelD.rda")) + + Engel1 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(EngelH,Weight))] + W <- MD[ ,.(.N,WW=sum(Weight)),by=.(Region,cluster3)] + + + + EngelD <- merge(EngelD,W[,.(cluster3,Region,WW)], by=c("cluster3","Region")) + EngelD<-EngelD[,Year:=year] + Engel1<-Engel1[,Year:=year] + BigEngelTable <- rbind(BigEngelTable,EngelD) + BigEngelTable1 <- rbind(BigEngelTable1,Engel1) + + } + + + library(writexl) + + #write_xlsx(BigEngelTable1,"E:/engle.xlsx") + + month<-Settings$predictionmonth + + InflationData <- data.table(read_excel(path = Settings$InflationDataFilePath)) + InflationData[,F1 := (1+D2FoodInf)/(1+D2Inf)] + InflationData<-InflationData[order(Year)] + InflationData<-InflationData[is.na(Month) | (!Month!=month)] + InflationData<-InflationData[,Month:=NULL] + + InflationData[,l.F1:=data.table::shift(F1)] + InflationData[,F2 := F1*l.F1] + + + + + BigEngelTable<-merge(BigEngelTable,InflationData,by="Year") + BigEngelTable<-BigEngelTable[order(Year,cluster3)] + BigEngelTable[,l.Engel:=data.table::shift(Engel),by=cluster3] + BigEngelTable[,l2.Engel:=data.table::shift(Engel,2),by=cluster3] + + BigEngelTable[,EngelX:=l.Engel*F1] + BigEngelTable[,EngelX2:=l2.Engel*F2] + + + BigEngelTable[is.na(EngelX) & is.na(EngelX2),ModifiedEngel:=Engel] + BigEngelTable[!is.na(EngelX) & is.na(EngelX2),ModifiedEngel:=(Engel+EngelX)/2] + BigEngelTable[is.na(ModifiedEngel),ModifiedEngel:=(Engel+EngelX+EngelX2)/3] + BigEngelTable[,PovertyLine:=FPLine/ModifiedEngel] + BigEngelTable[,PovertyLine0:=FPLine/Engel] + + save(BigEngelTable,file=paste0(Settings$HEISProcessedPath,"BigEngelTable.rda")) + + BigEngelTable1 <- BigEngelTable + BigEngelTable1 <- BigEngelTable1[,M_En:=weighted.mean(ModifiedEngel,WW),by="Year"] + BigEngelTable1 <- unique(BigEngelTable1[,.(Year,M_En)]) + #write_xlsx(BigEngelTable1,"E:/engle_modi.xlsx") + + PL<-BigEngelTable[,weighted.mean(PovertyLine,WW),by=c("Year")] + for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + if (year==Settings$predictionyear){ + year<-year-1 + for(month in (Settings$startmonth:Settings$endmonth)){ + cat(paste0("\nMonth:",month,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"M",month,"FoodPoor.rda")) + } + year<-year+1 + MD<-MD[,Year:=year] + }else{ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + + } + + MD <- merge(MD,BigEngelTable[Year==year, + .(cluster3,Region, + PovertyLine,PovertyLine0, + Engel,ModifiedEngel)], + by=c("Region","cluster3")) + PovertyL<-as.data.table(MD[,weighted.mean(PovertyLine,Weight*Size),by="cluster3"]) + PovertyL<-PovertyL[,Year:=year] + if (year==Settings$startyear){ + PLS<-PovertyL + }else{ + PLS<-rbind(PLS,PovertyL) + } + } + PLS<-PLS[,FinalPovertyL:=V1*(1.05)] + # btm <- melt(BigEngelTable,id.vars = c("Year","cluster3","Region"), + # measure.vars = c("Engel","ModifiedEngel")) + # + # library(ggplot2) + # library(gridExtra) + # library(ggpubr) + # + # plotlist <- list() + # for(cl in 1:13){ + # plt = ggplot(btm[cluster3==cl,], + # aes(x=Year,y=value, + # fill=variable,color=variable,linetype=variable)) + + # geom_line() + + # geom_point() + + # annotate(geom="label", x=84, y=max(btm[cluster3==cl,value])-.01, label=cl, color="red")+ + # theme(legend.position = "none", + # axis.title.x=element_blank(), + # axis.title.y=element_blank()) + # + # plotlist[[cl]] <- plt + # } + # plt = ggplot(btm[cluster3==cl,], aes(x=Year,y=value,fill=variable,color=variable)) + + # geom_line() + + # geom_point() + # leg <- get_legend(plt) + # plotlist[[cl+1]] <- as_ggplot(leg) + # do.call("grid.arrange", c(plotlist, ncol=2)) + write_xlsx(PLS,path=paste0(Settings$HEISResultsPath,"/ClusterPre.xlsx"),col_names=T) + + endtime <- proc.time() + cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") \ No newline at end of file diff --git a/R/167-Step7-Engel.R b/R/167-Step7-Engel.R new file mode 100644 index 00000000..eabe2471 --- /dev/null +++ b/R/167-Step7-Engel.R @@ -0,0 +1,116 @@ +# 167-Step7-Engel : Calculated Engel and modified Engel and Poverty Lines +# +# Copyright © 2018-2020: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Engel =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +BigEngelTable <- data.table(Region=NA_character_,cluster3=NA_integer_, + N=NA_integer_,Engel=NA_real_, + FPLine=NA_real_,Year=NA_integer_,WW=NA_real_)[0] +BigEngelTable1 <- data.table() +Settings$startyear<-Settings$startyear-2 + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + + MD<-MD[,EngelH:=(TOriginalFoodExpenditure/Total_Exp_Month)] + + + EngelD <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(EngelH,Weight), + FPLine=mean(FPLine)) + ,by=.(Region,cluster3)] + + save(EngelD,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngelD.rda")) + + Engel1 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(EngelH,Weight))] + W <- MD[ ,.(.N,WW=sum(Weight)),by=.(Region,cluster3)] + + + + EngelD <- merge(EngelD,W[,.(cluster3,Region,WW)], by=c("cluster3","Region")) + EngelD<-EngelD[,Year:=year] + Engel1<-Engel1[,Year:=year] + BigEngelTable <- rbind(BigEngelTable,EngelD) + BigEngelTable1 <- rbind(BigEngelTable1,Engel1) + +} + + +library(writexl) + +#write_xlsx(BigEngelTable1,"E:/engle.xlsx") + +InflationData <- data.table(read_excel(path = Settings$InflationDataFilePath)) +InflationData[,F1 := (1+D2FoodInf)/(1+D2Inf)] +InflationData<-InflationData[order(Year)] +InflationData[,l.F1:=data.table::shift(F1)] +InflationData[,F2 := F1*l.F1] + + +BigEngelTable<-merge(BigEngelTable,InflationData,by="Year") +BigEngelTable<-BigEngelTable[order(Year,cluster3)] +BigEngelTable[,l.Engel:=data.table::shift(Engel),by=cluster3] +BigEngelTable[,l2.Engel:=data.table::shift(Engel,2),by=cluster3] + +BigEngelTable[,EngelX:=l.Engel*F1] +BigEngelTable[,EngelX2:=l2.Engel*F2] + + +BigEngelTable[is.na(EngelX) & is.na(EngelX2),ModifiedEngel:=Engel] +BigEngelTable[!is.na(EngelX) & is.na(EngelX2),ModifiedEngel:=(Engel+EngelX)/2] +BigEngelTable[is.na(ModifiedEngel),ModifiedEngel:=(Engel+EngelX+EngelX2)/3] +BigEngelTable[,PovertyLine:=FPLine/ModifiedEngel] +BigEngelTable[,PovertyLine0:=FPLine/Engel] + +save(BigEngelTable,file=paste0(Settings$HEISProcessedPath,"BigEngelTable.rda")) + +BigEngelTable1 <- BigEngelTable +BigEngelTable1 <- BigEngelTable1[,M_En:=weighted.mean(ModifiedEngel,WW),by="Year"] +BigEngelTable1 <- unique(BigEngelTable1[,.(Year,M_En)]) +#write_xlsx(BigEngelTable1,"E:/engle_modi.xlsx") + +# btm <- melt(BigEngelTable,id.vars = c("Year","cluster3","Region"), +# measure.vars = c("Engel","ModifiedEngel")) +# +# library(ggplot2) +# library(gridExtra) +# library(ggpubr) +# +# plotlist <- list() +# for(cl in 1:13){ +# plt = ggplot(btm[cluster3==cl,], +# aes(x=Year,y=value, +# fill=variable,color=variable,linetype=variable)) + +# geom_line() + +# geom_point() + +# annotate(geom="label", x=84, y=max(btm[cluster3==cl,value])-.01, label=cl, color="red")+ +# theme(legend.position = "none", +# axis.title.x=element_blank(), +# axis.title.y=element_blank()) +# +# plotlist[[cl]] <- plt +# } +# plt = ggplot(btm[cluster3==cl,], aes(x=Year,y=value,fill=variable,color=variable)) + +# geom_line() + +# geom_point() +# leg <- get_legend(plt) +# plotlist[[cl+1]] <- as_ggplot(leg) +# do.call("grid.arrange", c(plotlist, ncol=2)) + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") diff --git a/R/168-Step8-PovertyStats.R b/R/168-Step8-PovertyStats.R new file mode 100644 index 00000000..dcd0c25a --- /dev/null +++ b/R/168-Step8-PovertyStats.R @@ -0,0 +1,262 @@ +# 168-Step8-PovertyStats.R +# +# Copyright © 2018-2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(writexl) +library(ggplot2) +library(spatstat) + + + +FinalCountryResults <- data.table(Year = numeric(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), Durable_Adds_Final = numeric(0), + PovertyDepth = numeric(0),PovertyLine_Final= numeric(0)) +FinalRegionResults <- data.table(Year = numeric(0), + Region=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), Durable_Adds_Final = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0),PovertyLine_Final= numeric(0)) +FinalClusterResults <- data.table(Year = numeric(0), + cluster3=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), Durable_Adds_Final = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0),PovertyLine_Final= numeric(0)) +FinalProvinceResults <- data.table(Year = numeric(0), + ProvinceName=character(0), Province=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), Durable_Adds_Final = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0),PovertyLine_Final= numeric(0)) + +OriginalFoodShare <- data.table(Year=NA_integer_,Share=NA_integer_,FinalPoor=NA_integer_)[0] +ProvinceFarsiNames<-as.data.table(read_excel("../Data/ProvinceFarsiNames.xlsx", + sheet = "Sheet2")) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"BigEngelTable.rda")) + + #MD<-MD[Region=="Rural"] + + MD <- merge(MD,BigEngelTable[Year==year, + .(cluster3,Region, + PovertyLine,PovertyLine0, + Engel,ModifiedEngel)], + by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine,1,0 )] + MD[,FinalPoor0:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine0,1,0 )] + #at(MD[,.(weighted.mean(FinalPoor,Weight*Size))]$V1,"\t") + MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + MD10<-MD[,.(HHID,NMiddle,NStudents)] + save(MD10,file=paste0(Settings$HEISProcessedPath,"Y",year,"school.rda")) + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per_nondurable)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per_nondurable)/PovertyLine)^2] + + + MD[,Durable_Adds_Final:=(Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable] + + ################Country################## + + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight)) + ] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ] + X1[,Year:=year] + X1[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight)) + ,by=Region] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ,by=Region] + X1[,Year:=year] + X1[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight*Size), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight)) + ,by=cluster3] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + by=cluster3] + + + X1[,Year:=year] + X1[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + ################Province################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight)) + ,by="ProvinceName"] + X1<-merge(X1,ProvinceFarsiNames[,.(ProvinceName,Province)],by=c("ProvinceName")) + + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ,by="ProvinceName"] + + + X1[,Year:=year] + X1[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","ProvinceName")) + FinalProvinceResults <- rbind(FinalProvinceResults,X) + + #################################################### + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + #cat(MD[, weighted.mean(FinalPoor0,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + #cat(MD[, weighted.mean(FPLine,Weight*Size)],"\n") + #cat(MD[, weighted.mean(TFoodKCaloriesHH_Per,Weight*Size)],"\t") + # cat(MD[, weighted.median(TFoodKCaloriesHH_Per,Weight*Size)],"\t") + #cat(MD[, sum(Weight*Size)],"\t") + cat(MD[, weighted.mean(Total_Exp_Month_Per,Weight*Size)],"\t") + cat(MD[, weighted.median(Total_Exp_Month_Per,Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + + DurableD<- MD[ Total_Exp_Month_Per_nondurable>0.8*PovertyLine & + Total_Exp_Month_Per_nondurable<1.2*PovertyLine, + .(.N,Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight), + PovertyLine=mean(PovertyLine)), + by=.(Region,cluster3)] + + DurableD[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + ## Total_Exp_Month/TOriginalFoodExpenditure * FPLIne *(Total_Exp_Month_nondurable+Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable ) + save(DurableD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPovertyLine.rda")) + + MD <- merge(MD,DurableD[,.(cluster3,Region,PovertyLine_Final)],by=c("Region","cluster3")) + + Z1 <- MD[,.(Share=weighted.mean(TOriginalFoodExpenditure/FoodExpenditure,Weight)),by=FinalPoor] + Z1[,Year:=year] + + OriginalFoodShare <- rbind(OriginalFoodShare,Z1) + + + # a<-MD[,weighted.mean(PovertyLine,Weight)] + # MD[,F_P:=ifelse(Total_Exp_Month_Per_nondurable < a,1,0 )] + #cat(MD[, weighted.mean(F_P,Weight*Size)],"\t") + + + +} + +#BigEngelTable2<-BigEngelTable[,A:=sum(N),by=Year] + + + +#A1<-MD[,weighted.mean(Total_Exp_Month,Weight),by=Decile] +#A2<-MD[,weighted.mean(Total_Exp_Month,Weight),by=ProvinceCode] +#A3<-MD[,weighted.mean(Total_Exp_Month_Per,Weight),by=Decile] +#A4<-MD[,weighted.mean(Total_Exp_Month_Per,Weight),by=ProvinceCode] + +#A5<-MD[,weighted.mean(Total_Exp_Month,Weight),by=c("Decile","ProvinceCode")] +#A6<-MD[,weighted.mean(Total_Exp_Month_Per,Weight),by=c("Decile","ProvinceCode")] +#write.csv(A5,file="A5.csv") +#write.csv(A6,file="A6.csv") + +write_xlsx(FinalClusterResults[Year>Settings$startyear+2,],path=paste0(Settings$HEISResultsPath,"/ClusterResults.xlsx"),col_names=T) +write_xlsx(FinalCountryResults[Year>Settings$startyear+2,],path=paste0(Settings$HEISResultsPath,"/CountryResults.xlsx"),col_names=T) +write_xlsx(FinalRegionResults[Year>Settings$startyear+2,],path=paste0(Settings$HEISResultsPath,"/RegionResults.xlsx"),col_names=T) +write_xlsx(FinalProvinceResults[Year>Settings$startyear+2,],path=paste0(Settings$HEISResultsPath,"/ProvinceResults.xlsx"),col_names=T) + +ggplot(MD, aes(HEduYears)) + geom_density(aes(weights=Weight)) + +ggplot(MD) + + geom_density(aes(x = HEduYears, weight = Weight), color = "green") + + geom_density(aes(x = HEduYears), color = "blue") + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") \ No newline at end of file diff --git a/R/170-Deciling for normal calculations.R b/R/170-Deciling for normal calculations.R new file mode 100644 index 00000000..9ea92e66 --- /dev/null +++ b/R/170-Deciling for normal calculations.R @@ -0,0 +1,154 @@ +#164-Step 4-FindInitialPoor.R +# +# Copyright © 2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Deciling =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +#library(ggplot2) +#library(compare) +source("142-Calculate_OwnedDurableItemsDepreciation_FunctionDef.R") +# Function Defs --------------------------------------------------------------------------------- +CalcTornqvistIndex <- function(DataTable){ + + X <- DataTable[,.(N=.N,wi1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wi2=weighted.mean(House_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + pi1=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + pi2=weighted.mean(MeterPrice,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,wi:=wi1+wi2] + X[,wi1:=wi1/wi] + X[,wi2:=wi2/wi] + XTeh<-X[NewArea_Name=="Sh_Tehran"] + wk1<-XTeh$wi1 # k == Sh_Tehran + wk2<-XTeh$wi2 + pk1<-XTeh$pi1 + pk2<-XTeh$pi2 + + X[,SimpleIndex:= .5 * pi1/pk1 + .5 * pi2/pk2] + X[,AnotherIndex:= wi1 * pi1/pk1 + wi2 * pi2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wi1)/2 * log(pi1/pk1) + (wk2+wi2)/2 * log(pi2/pk2) ) ] + + return(X[,.(Region,NewArea_Name,PriceIndex=TornqvistIndex)]) +} + + +DoDeciling <- function(DataTable,PriceIndexDT){ + + if("PriceIndex" %in% names(DataTable)){ + DataTable <- DataTable[,PriceIndex:=NULL] + } + DataTable <- merge(DataTable,PriceIndexDT,by=c("Region","NewArea_Name")) + + + DataTable <- DataTable[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] # I removed Region from ordering, deciling is not divided into rural/urban (M.E. 5/11/2020) + DataTable <- DataTable[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + DataTable <- DataTable[,xr25th:=.SD[25,Total_Exp_Month_Per_nondurable_Real],by=.(Region,NewArea_Name)] + DataTable <- DataTable[,First25:=ifelse(Total_Exp_Month_Per_nondurable_Real<=xr25th,1,0)] + #Calculate deciles by weights + DataTable <- DataTable[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + DataTable <- DataTable[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + DataTable[,crw:=NULL] + DataTable[,xr25th:=NULL] + + return(DataTable) +} + +UpdateForDurableDepr <- function(DataTable,ODIDep){ + DataTable[,OwnedDurableItemsDepreciation:=NULL] + DataTable <- merge(DataTable,ODIDep) + + for (col in Settings$w) + DataTable[is.na(get(col)), (col) := 0] + + DataTable[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=Settings$w] + DataTable[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=Settings$nw] + + DataTable[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + DataTable[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] +} + +DurableItems <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_DurableItemsDepr)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file = paste0(Settings$HEISProcessedPath,"Y", + year,"DurableData_Detail.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year, + "OwnsDurableItems.rda")) + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region, + House_Exp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_NutritionInstitute, + Weight,MeterPrice,Size,EqSizeOECD + ,OriginalFoodExpenditure,FoodOtherExpenditure, Cigar_Exp, Cloth_Exp, + Amusement_Exp, Communication_Exp, + Energy_Exp, Furniture_Exp, Hotel_Exp,Restaurant_Exp, Hygiene_Exp, + Transportation_Exp, Other_Exp + ,Add_to_NonDurable,Medical_Exp, + Durable_NoDep,Durable_Emergency,OwnedDurableItemsDepreciation)] + + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_NutritionInstitute/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_NutritionInstitute/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + # S1<-SMD[,.(HHID,Region,NewArea_Name,TFoodKCaloriesHH_Per,Bundle_Value)] + + + PriceDT <- CalcTornqvistIndex(SMD) + + SMD <- DoDeciling(SMD,PriceDT) + + OwnedDurableItemsDepreciation <- + Calculate_OwnedDurableItemsDepreciation( + DurableData_ExpDetail = DurableData_Detail, + DurableItems_OwningDetail = OwnsDurableItems, + by = c("Item","Decile"), + Decile = SMD[,.(HHID,Decile)], + DurableItems = DurableItems) + + SMD <- UpdateForDurableDepr(SMD,OwnedDurableItemsDepreciation) + + mdset <- setdiff(names(MD),names(SMD)) + Decile <- merge(MD[,c("HHID",mdset),with=FALSE],SMD,by="HHID") + Decile <-Decile[,.(HHID,Decile)] + save(Decile,file=paste0(Settings$HEISProcessedPath,"Y",year,"Decile.rda")) + + #Decile_MD <- MD [,.(HHID,Total_Exp_Month_Per_nondurable,Size,Weight)] + #Decile_MD <- Decile_MD[order(Total_Exp_Month_Per_nondurable)] + #Decile_MD <- Decile_MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] + #Decile_MD <- Decile_MD[,Decile_non_real:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + #MD <- merge(MD,Decile_MD[,c("HHID","Decile_non_real")],by="HHID") + #save(Decile_MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"Decile_non_real.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/176-Step6-FoodPoor- NewArea.R b/R/176-Step6-FoodPoor- NewArea.R new file mode 100644 index 00000000..92298785 --- /dev/null +++ b/R/176-Step6-FoodPoor- NewArea.R @@ -0,0 +1,73 @@ +# 166-Step6-FoodPoor.R: Calculate base year basket cost in current year prices +# for each cluster. and find FoodPoor +# +# Copyright © 2019-2020: Arin Shahbazian & Majid Einian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(data.table) +library(spatstat) +year<-Settings$baseBundleyear + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + +MD[,Selected_Group:=ifelse((Region=="Urban" & (Decile==4)) | + (Region=="Rural" & (Decile==3)),1,0)] + +Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) +Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) +Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size, + EqSizeCalory,Selected_Group)],by="HHID") +Bfd2[is.na(Bfd2)]<-0 +Bfd2[Price<0.1,Price:=NA] + +BaseYearBasket <- Bfd2[Selected_Group==1, + .(FGramspc=weighted.mean(FGrams/EqSizeCalory,Weight*Size), + FKCalspc=weighted.mean(FoodKCalories/EqSizeCalory,Weight*Size)), + by=.(FoodType,Region)] +BaseYearBasket[,BasketCals:=sum(FKCalspc),by=Region] +BaseYearBasket[,StandardFGramspc:=FGramspc*Settings$KCaloryNeed_Adult_WorldBank/BasketCals] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + + MD[,Selected_Group:=ifelse((Decile==5) | (Decile==2) | + (Decile==3) | (Decile==4),1,0)] + + Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) + Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) + Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size,NewArea_Name, + EqSizeCalory,Selected_Group)],by="HHID") + Bfd2[is.na(Bfd2)]<-0 + Bfd2[Price<0.1,Price:=NA] + # Basket <- Bfd2[Selected_Group==1, + # .(FGramspc=weighted.mean(FGrams/EqSizeCalory,Weight*Size)), + # by=.(FoodType,NewArea_Name)] + + BasketPrice <- Bfd2[Selected_Group==1 & !is.na(Price), + .(Price=weighted.median(Price,Weight*Size,na.rm = TRUE)), + by=.(FoodType,Region,NewArea_Name)] + + BasketCost <- merge(BaseYearBasket,BasketPrice,by=c("FoodType","Region")) + BasketCost[,Cost:=(StandardFGramspc/1000)*Price] + FPLineBasket <- BasketCost[,.(FPLine=sum(Cost)),by=c("Region","NewArea_Name")] + + MD <- merge(MD,FPLineBasket,all.x=TRUE,by=c("Region","NewArea_Name")) + + MD[,FoodPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor2.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"]," seconds") \ No newline at end of file diff --git a/R/177-Step7-Engel- NewArea.R b/R/177-Step7-Engel- NewArea.R new file mode 100644 index 00000000..6ee58854 --- /dev/null +++ b/R/177-Step7-Engel- NewArea.R @@ -0,0 +1,68 @@ +# 167-Step7-Engel : Calculated Engel and modified Engel and Poverty Lines +# +# Copyright © 2018-2020: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Engel =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +BigEngelTable <- data.table(Region=NA_character_,NewArea_Name=NA_integer_, + N=NA_integer_,Engel=NA_real_, + FPLine=NA_real_,Year=NA_integer_,ProvinceCode=NA_integer_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor2.rda")) + + MD<-MD[,EngelH:=(TOriginalFoodExpenditure/Total_Exp_Month)] + + + EngelD <- MD[ TOriginalFoodExpenditure_Per>0.7*FPLine & + TOriginalFoodExpenditure_Per<1.3*FPLine, + .(.N,Engel=weighted.mean(EngelH,Weight), + FPLine=mean(FPLine)) + ,by=.(Region,NewArea_Name,ProvinceCode)] + + save(EngelD,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngelD.rda")) + + EngelD<-EngelD[,Year:=year] + BigEngelTable <- rbind(BigEngelTable,EngelD) +} + +InflationData <- data.table(read_excel(path = Settings$InflationDataFilePath)) +InflationData[,F1 := (1+D2FoodInf)/(1+D2Inf)] +InflationData<-InflationData[order(Year)] +InflationData[,l.F1:=data.table::shift(F1)] +InflationData[,F2 := F1*l.F1] + + +BigEngelTable<-merge(BigEngelTable,InflationData,by="Year") +BigEngelTable<-BigEngelTable[order(Year,NewArea_Name)] +BigEngelTable[,l.Engel:=data.table::shift(Engel),by=NewArea_Name] +BigEngelTable[,l2.Engel:=data.table::shift(Engel,2),by=NewArea_Name] + +BigEngelTable[,EngelX:=l.Engel*F1] +BigEngelTable[,EngelX2:=l2.Engel*F2] + + +BigEngelTable[is.na(EngelX) & is.na(EngelX2),ModifiedEngel:=Engel] +BigEngelTable[!is.na(EngelX) & is.na(EngelX2),ModifiedEngel:=(Engel+EngelX)/2] +BigEngelTable[is.na(ModifiedEngel),ModifiedEngel:=(Engel+EngelX+EngelX2)/3] +BigEngelTable[,PovertyLine:=FPLine/ModifiedEngel] +BigEngelTable[,PovertyLine0:=FPLine/Engel] + +save(BigEngelTable,file=paste0(Settings$HEISProcessedPath,"BigEngelTable2.rda")) + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") \ No newline at end of file diff --git a/R/178-Step8-PovertyStats- NewArea.R b/R/178-Step8-PovertyStats- NewArea.R new file mode 100644 index 00000000..310335af --- /dev/null +++ b/R/178-Step8-PovertyStats- NewArea.R @@ -0,0 +1,233 @@ +# 168-Step8-PovertyStats.R +# +# Copyright © 2018-2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(writexl) +library(ggplot2) + +FinalCountryResults <- data.table(Year = numeric(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0)) +FinalRegionResults <- data.table(Year = numeric(0), + Region=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0)) +FinalClusterResults <- data.table(Year = numeric(0), + NewArea_Name=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0)) +FinalProvinceResults <- data.table(Year = numeric(0), + ProvinceName=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0)) + +OriginalFoodShare <- data.table(Year=NA_integer_,Share=NA_integer_,FinalPoor=NA_integer_)[0] + +year<-98 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor2.rda")) + load(file=paste0(Settings$HEISProcessedPath,"BigEngelTable2.rda")) + + + + MD <- merge(MD,BigEngelTable[Year==year, + .(NewArea_Name,Region, + PovertyLine,PovertyLine0, + Engel,ModifiedEngel)], + by=c("Region","NewArea_Name")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine,1,0 )] + MD[,FinalPoor0:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine0,1,0 )] + cat(MD[,.(weighted.mean(FinalPoor,Weight*Size))]$V1,"\t") + MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor2.rda")) + + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per_nondurable)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per_nondurable)/PovertyLine)^2] + + + + ################Country################## + + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)) + ] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)) + ,by=Region] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ,by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)) + ,by=NewArea_Name] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + by=NewArea_Name] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","NewArea_Name")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + ################Province################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)) + ,by="ProvinceName"] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ,by="ProvinceName"] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","ProvinceName")) + FinalProvinceResults <- rbind(FinalProvinceResults,X) + + #################################################### + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + cat(MD[, weighted.mean(FinalPoor0,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + cat(MD[, weighted.mean(FPLine,Weight*Size)],"\t") + + +} + +load(file="Inflation9098.rda") +BigEngelTable<-merge(BigEngelTable,Inflation9098,by="ProvinceCode") + +BigEngelTable[,Final_PovertyLine:=ifelse(Year==90,PovertyLine0*y9091*y9192*y9293*y9394*y9495*y9596*y9697*y9798, + ifelse(Year==91,PovertyLine0*y9192*y9293*y9394*y9495*y9596*y9697*y9798, + ifelse(Year==92,PovertyLine0*y9293*y9394*y9495*y9596*y9697*y9798, + ifelse(Year==93,PovertyLine0*y9394*y9495*y9596*y9697*y9798, + ifelse(Year==94,PovertyLine0*y9495*y9596*y9697*y9798, + ifelse(Year==95,PovertyLine0*y9596*y9697*y9798, + ifelse(Year==96,PovertyLine0*y9697*y9798, + ifelse(Year==97,PovertyLine0*y9798,PovertyLine0))))))))] + +BigEngelTable[,Final_PovertyLine_Mean:=mean(Final_PovertyLine),by=c("Region","NewArea_Name")] + + +A2<-MD[,.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")] +A2<-A2[,.(PovertyLine,ProvinceName,N)] +A2$ProvinceName <- factor(A2$ProvinceName, levels = A2$ProvinceName[order(A2$PovertyLine)]) +ggplot(A2, aes(x = A2$ProvinceName, y = A2$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 16000000) + + +A2<-MD[Region=="Urban",.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")] +A2<-A2[,.(PovertyLine,ProvinceName,N)] +A2$ProvinceName <- factor(A2$ProvinceName, levels = A2$ProvinceName[order(A2$PovertyLine)]) +ggplot(A2, aes(x = A2$ProvinceName, y = A2$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 16000000) + + +A2<-MD[Region=="Rural",.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")] +A2<-A2[,.(PovertyLine,ProvinceName,N)] +A2$ProvinceName <- factor(A2$ProvinceName, levels = A2$ProvinceName[order(A2$PovertyLine)]) +ggplot(A2, aes(x = A2$ProvinceName, y = A2$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 16000000) + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") \ No newline at end of file diff --git a/R/190-InterDecileMovement.R b/R/190-InterDecileMovement.R new file mode 100644 index 00000000..685503cb --- /dev/null +++ b/R/190-InterDecileMovement.R @@ -0,0 +1,336 @@ +# 190-InterDecileMovement.R +# The code identifies the movement of houselolds between deciles +# and also over and under the Poverty and FoodPoverty Lines. +# +# Copyright © 2018-2020:Salman Farajnia +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(xlsx) +library(spatstat) +library(data.table) + +library(tidyverse) +library(viridis) +library(patchwork) +library(hrbrthemes) +library(circlize) +library(networkD3) + +# This functions gets text and gives it back as a R Code. +ep <- function(t){ + return((parse(text=t))) +} + +# This Function merges a public_sector column to data. public_sector is +# a dummy variable that is 1 if at least one member of the household works +# in public sector and 0 otherwise. +add_public_sector <- function(year, datatable){ + library(yaml) + Settings <- yaml.load_file("Settings.yaml") + library(haven) + library(readxl) + library(data.table) + library(stringr) + + P1Cols <- data.table(read_excel(Settings$MetaDataFilePath, Settings$MDS_P1Cols)) + + pub_wage_meta <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_PubWage)) + buss_wage_meta <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_BussInc)) + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + pub_wage_meta_y <-pub_wage_meta[Year==year] + buss_wage_meta_y<- buss_wage_meta[Year==year] + pubw_t_name <-pub_wage_meta_y$Table + buss_t_name <- buss_wage_meta_y$Table + Upubt <- Tables[[paste0("U",year,pubw_t_name)]] + Rpubt <- Tables[[paste0("R",year,pubw_t_name)]] + Ubusst <- Tables[[paste0("U",year,buss_t_name)]] + Rbusst <- Tables[[paste0("R",year,buss_t_name)]] + Tpubt <- rbind(Upubt, Rpubt) + Tbusst <- rbind(Ubusst, Rbusst) + #Twage + for(n in names(Tpubt)){ + x <- which(pub_wage_meta_y==n) + if(length(x)>0) + setnames(Tpubt,n,names(pub_wage_meta_y)[x]) + } + for(n in names(Tbusst)){ + x <- which(buss_wage_meta_y==n) + if(length(x)>0) + setnames(Tbusst,n,names(buss_wage_meta_y)[x]) + } + Twage = rbind(Tpubt, Tbusst, fill=TRUE) + # Twage[,HHID:=as.character(HHID)] + Twage[, pub_sector:= fifelse(WageSector==1,1,0,na = 0)] + Twage2 <- Twage[,c('HHID','pub_sector')] + Twage3 <- Twage2[,.(public_sec= fifelse(sum(pub_sector)>0,1,0)), by='HHID'] + datatable <- merge(datatable, Twage3, by = "HHID", all.x=TRUE) + return(datatable) +} + +draw_flow_rectangle <- function(DT,year){ + colnames(DT) <- c("source", "target", "value") + DT[,source:= paste0("Decile",source,"_",year)] + DT[,target:= paste0("Decile",target,"_",year+1)] + + # create a node data frame: it lists every entities involved in the flow + nodes <- data.frame(name=c(as.character(DT$source), as.character(DT$target)) %>% unique()) + + # encode the nodes to numbers + DT$IDsource=match(DT$source, nodes$name)-1 + DT$IDtarget=match(DT$target, nodes$name)-1 + # prepare colour scale + ColourScal ='d3.scaleOrdinal() .range(["#FDE725FF","#B4DE2CFF","#6DCD59FF","#35B779FF","#1F9E89FF","#26828EFF","#31688EFF","#3E4A89FF","#482878FF","#440154FF"])' + # Make the Network + sn<- sankeyNetwork(Links = DT, Nodes = nodes, + Source = "IDsource", Target = "IDtarget", + Value = "value", NodeID = "name", + sinksRight=FALSE, colourScale=ColourScal, nodeWidth=40, fontSize=13, nodePadding=20) + + saveNetwork(sn, file = "C:/IRHEIS/decile movement/flow.html", selfcontained = TRUE) +} + + +public_boolean = TRUE +# import yearly DataTables ,keep needed columns +# and append them to create total DataTable +years = Settings$startyear:Settings$endyear +years_test <- 90:91 +data_total <- data.table() +wb_decile <- createWorkbook() +wb_poor <- createWorkbook() +wb_foodpoor <- createWorkbook() +wb_movement_ts <- createWorkbook() +movement_time_series = data.table(base_year=integer(),target_year=integer(), + double_poor=numeric(), double_poor_p=numeric(), + poor_rescue=numeric(),fall_to_poor = numeric(), + doulble_fpoor=numeric(), doulble_fpoor_p=numeric(), + fpoor_rescue=numeric(), fall_to_fpoor= numeric()) +for(year in years){ + if (year %in% list(91,96,98)) next + cat(paste0("\n------------------------------\nYear:",year,"-->",year+1,"\n")) + # load base year + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + base_year = MD[,c("HHID", "Year", "Decile", "Percentile", "FinalPoor", "FoodPoor", + "Size", "Weight")] + if (public_boolean){ + base_year = add_public_sector(year, base_year) + } + # load target year + load(file=paste0(Settings$HEISProcessedPath,"Y",year+1,"FinalPoor.rda")) + target_year = MD[,c("HHID", "Year", "Decile","Percentile", "FinalPoor", "FoodPoor", + "Size", "Weight")] + if (public_boolean){ + target_year = add_public_sector(year+1, target_year) + } + data_total<-rbind(base_year,target_year) + + # duplicated HHIDs are the families who are in the dataset for two + # consecutive year + data_total[, duplicates := .N > 1, by = c("HHID")] + data_total[, public_sec:=fifelse(is.na(public_sec),0,public_sec)] + # adjust the weight of the duplicated families to represent + # the whole dateset. + if (public_boolean){ + data_total[, weight_tot_panel := sum(Weight*Size*public_sec), by = c("Year", "duplicates")] + data_total[, weight_tot := sum(Weight*Size*public_sec), by = c("Year")] + } else{ + data_total[, weight_tot_panel := sum(Weight*Size), by = c("Year", "duplicates")] + data_total[, weight_tot := sum(Weight*Size), by = c("Year")] + } + data_total[, Weight_panel:= Weight*weight_tot/weight_tot_panel] + + # remove families who were present only one-time in the datasets of + # the two consecutive years + data_total<-data_total[duplicates==TRUE][order(HHID, Year)] + + + #reshape long panel to wide panel data + data_wide<-reshape(data_total, direction = "wide", sep = "_", + v.names = c("public_sec","Size","Decile","Percentile","FinalPoor", + "FoodPoor","Weight_panel", "Weight"), + drop = c("weight_tot", "weight_tot_panel", "duplicates"), + timevar = "Year", idvar = "HHID") + text <- paste0("data_wide <- data_wide[public_sec_",year,"==1 & public_sec_",year+1,"==1]") + if (public_boolean){ + eval(ep(text)) + } + # adjust weight and size of the households + text <- paste0("Weight_panel:= (Weight_panel_",year,"+Weight_panel_",year+1,")/2") + data_wide[,eval(ep(text))] + + text <- paste0("Size:= (Size_",year,"+Size_",year+1,")/2") + data_wide[,eval(ep(text))] + + ######PART 1: Movement between DECILES######################################## + # create movement columns. {first column=status in base year} + # {second column= status in target year} + # {third column= percentage of individuals in each part who change their status} + text_base<-paste0("Decile_",year) + text_target<-paste0("Decile_",year+1) + data_wide[,pop:=sum(Weight_panel*Size),by=c(text_base)] + movement_decile<-data_wide[,round(sum(Weight_panel*Size/pop*100), digits=1),by=c(text_base, text_target)] + movement_decile<-movement_decile[order(eval(ep(text_base)), eval(ep(text_target)))] + + # draw_flow_rectangle(movement_decile,year) + decile_matrix<-as.data.frame.matrix(xtabs(V1~., movement_decile)) + rownames(decile_matrix) = paste0(year,"_",rownames(decile_matrix)) + colnames(decile_matrix) = paste0(year+1,"_",colnames(decile_matrix)) + sheet_name = paste0(year,"_",year+1) + sheet = createSheet(wb_decile, sheetName = sheet_name) + addDataFrame(decile_matrix,sheet = sheet) + + ######PART 2: Movement between Poor and non_Poor################################### + # create movement columns. {first column=status in base year} + # {second column= status in target year} + # {third column= percentage of individuals in each part who change their status} + text_base<-paste0("FinalPoor_",year) + text_target<-paste0("FinalPoor_",year+1) + data_wide[,pop:=sum(Weight_panel*Size),by=c(text_base)] + movement_poor<-data_wide[,round(sum(Weight_panel*Size), digits=1),by=c(text_base, text_target)] + movement_poor<-movement_poor[order(eval(ep(text_base)), eval(ep(text_target)))] + poor_matrix<-as.data.frame.matrix(xtabs(V1~., movement_poor)) + + # add new columns to movement matrix + poor_matrix["2"] = poor_matrix["0"] + poor_matrix["3"] = poor_matrix["0"] + poor_matrix["4"] = poor_matrix["0"] + poor_matrix["5"] = poor_matrix["0"] + poor_matrix["6"] = poor_matrix["0"] + poor_matrix["7"] = poor_matrix["0"] + + # create a matrix that its elements are in percent + # and the sum of the columns is 100% + poor_matrix[1,3] = poor_matrix[1,1]/(poor_matrix[1,1]+poor_matrix[2,1])*100 + poor_matrix[2,3] = poor_matrix[2,1]/(poor_matrix[1,1]+poor_matrix[2,1])*100 + poor_matrix[1,4] = poor_matrix[1,2]/(poor_matrix[1,2]+poor_matrix[2,2])*100 + poor_matrix[2,4] = poor_matrix[2,2]/(poor_matrix[1,2]+poor_matrix[2,2])*100 + + # create a matrix that its elements are in percent + # and the sum of the rows is 100% + poor_matrix[1,5] = poor_matrix[1,1]/(poor_matrix[1,1]+poor_matrix[1,2])*100 + poor_matrix[1,6] = poor_matrix[1,2]/(poor_matrix[1,1]+poor_matrix[1,2])*100 + poor_matrix[2,5] = poor_matrix[2,1]/(poor_matrix[2,1]+poor_matrix[2,2])*100 + poor_matrix[2,6] = poor_matrix[2,2]/(poor_matrix[2,1]+poor_matrix[2,2])*100 + + + # create a matrix that its elements are in percent + # and the sum of the all of its elements is 100% + sum_pop = (poor_matrix[1,1]+poor_matrix[1,2]+ + poor_matrix[2,1]+poor_matrix[2,2]) + poor_matrix[1,7] = poor_matrix[1,1]/ sum_pop*100 + poor_matrix[1,8] = poor_matrix[1,2]/sum_pop*100 + poor_matrix[2,7] = poor_matrix[2,1]/sum_pop*100 + poor_matrix[2,8] = poor_matrix[2,2]/sum_pop*100 + poor_matrix = round(poor_matrix, digits = 1) + + rownames(poor_matrix) = c("NotPoor","Poor") + colnames(poor_matrix) = c("NotPoor","Poor","NotPoor_p1","Poor_p1", + "NotPoor_p2","Poor_p2","NotPoor_p3","Poor_p3") + rownames(poor_matrix) = paste0(year,"_",rownames(poor_matrix)) + colnames(poor_matrix) = paste0(year+1,"_",colnames(poor_matrix)) + sheet_name = paste0(year,"_",year+1) + sheet = createSheet(wb_poor, sheetName = sheet_name) + addDataFrame(poor_matrix,sheet = sheet) + + ######PART 3: Movement between FoodPoor and non_FoodPoor########################## + # create movement columns. {first column=status in base year} + # {second column= status in target year} + # {third column= percentage of individuals in each part who change their status} + text_base<-paste0("FoodPoor_",year) + text_target<-paste0("FoodPoor_",year+1) + data_wide[,pop:=sum(Weight_panel*Size),by=c(text_base)] + movement_foodpoor<-data_wide[,round(sum(Weight_panel*Size), digits=1),by=c(text_base, text_target)] + movement_foodpoor<-movement_foodpoor[order(eval(ep(text_base)), eval(ep(text_target)))] + + foodpoor_matrix<-as.data.frame.matrix(xtabs(V1~., movement_foodpoor)) + + # add new columns to movement matrix + foodpoor_matrix["2"] = foodpoor_matrix["0"] + foodpoor_matrix["3"] = foodpoor_matrix["0"] + foodpoor_matrix["4"] = foodpoor_matrix["0"] + foodpoor_matrix["5"] = foodpoor_matrix["0"] + foodpoor_matrix["6"] = foodpoor_matrix["0"] + foodpoor_matrix["7"] = foodpoor_matrix["0"] + + # create a matrix that its elements are in percent + # and the sum of the columns is 100% + foodpoor_matrix[1,3] = foodpoor_matrix[1,1]/(foodpoor_matrix[1,1]+foodpoor_matrix[2,1])*100 + foodpoor_matrix[2,3] = foodpoor_matrix[2,1]/(foodpoor_matrix[1,1]+foodpoor_matrix[2,1])*100 + foodpoor_matrix[1,4] = foodpoor_matrix[1,2]/(foodpoor_matrix[1,2]+foodpoor_matrix[2,2])*100 + foodpoor_matrix[2,4] = foodpoor_matrix[2,2]/(foodpoor_matrix[1,2]+foodpoor_matrix[2,2])*100 + + # create a matrix that its elements are in percent + # and the sum of the rows is 100% + foodpoor_matrix[1,5] = foodpoor_matrix[1,1]/(foodpoor_matrix[1,1]+foodpoor_matrix[1,2])*100 + foodpoor_matrix[1,6] = foodpoor_matrix[1,2]/(foodpoor_matrix[1,1]+foodpoor_matrix[1,2])*100 + foodpoor_matrix[2,5] = foodpoor_matrix[2,1]/(foodpoor_matrix[2,1]+foodpoor_matrix[2,2])*100 + foodpoor_matrix[2,6] = foodpoor_matrix[2,2]/(foodpoor_matrix[2,1]+foodpoor_matrix[2,2])*100 + foodpoor_matrix = round(foodpoor_matrix, digits = 1) + + # create a matrix that its elements are in percent + # and the sum of the all of its elements is 100% + sum_pop = (foodpoor_matrix[1,1]+foodpoor_matrix[1,2]+ + foodpoor_matrix[2,1]+foodpoor_matrix[2,2]) + foodpoor_matrix[1,7] = foodpoor_matrix[1,1]/ sum_pop*100 + foodpoor_matrix[1,8] = foodpoor_matrix[1,2]/sum_pop*100 + foodpoor_matrix[2,7] = foodpoor_matrix[2,1]/sum_pop*100 + foodpoor_matrix[2,8] = foodpoor_matrix[2,2]/sum_pop*100 + foodpoor_matrix = round(foodpoor_matrix, digits = 1) + + rownames(foodpoor_matrix) = c("NotFoodPoor","FoodPoor") + colnames(foodpoor_matrix) = c("NotFoodPoor","FoodPoor","NotFoodPoor_p1","FoodPoor_p1", + "NotFoodPoor_p2","FoodPoor_p2","NotFoodPoor_p3","FoodPoor_p3") + rownames(foodpoor_matrix) = paste0(year,"_",rownames(foodpoor_matrix)) + colnames(foodpoor_matrix) = paste0(year+1,"_",colnames(foodpoor_matrix)) + sheet_name = paste0(year,"_",year+1) + sheet = createSheet(wb_foodpoor, sheetName = sheet_name) + addDataFrame(foodpoor_matrix,sheet = sheet) + + ######PART 4: Movement time series################################### + # create Time-series of important cells in the movement matrices. + double_poor = poor_matrix[2,2] + double_poor_p = poor_matrix[2,8] + poor_rescue = poor_matrix[2,5] + fall_to_poor = poor_matrix [1,6] + double_fpoor = foodpoor_matrix[2,2] + double_fpoor_p = foodpoor_matrix[2,8] + fpoor_rescue = foodpoor_matrix[2,5] + fall_to_fpoor = foodpoor_matrix [1,6] + movement_time_series<-rbind(movement_time_series, + list(year,year+1,double_poor,double_poor_p,poor_rescue, + fall_to_poor,double_fpoor,double_fpoor_p, + fpoor_rescue,fall_to_fpoor)) + + + # here I check the reliability of the data. + #if the households which have the same ID in the two consecutive years + # are really the same households, then their size may not change + # considerably. so by drawing the histogram of the difference of the + # size of a household in this two years I anticipate a distribution of mean Zero + # which is concenterated near zero. + base0 = paste0("Size_",year) + base1 = paste0("Size_",year+1) + data_wide$diff_size = data_wide[,..base0] - data_wide[,..base1] + png(file=paste0(Settings$HEISResultsPath,year,"hist.png")) + hist(data_wide$diff_size, freq=FALSE, ylim = c(0,0.9)) + dev.off() +} +saveWorkbook(wb_decile, paste0(Settings$HEISResultsPath,"decile_movement.xlsx")) +saveWorkbook(wb_poor, paste0(Settings$HEISResultsPath,"poor_movement.xlsx")) +saveWorkbook(wb_foodpoor, paste0(Settings$HEISResultsPath,"foodpoor_movement.xlsx")) +sheet = createSheet(wb_movement_ts, sheetName = 'movemetn time-series') +addDataFrame(movement_time_series, sheet = sheet) +saveWorkbook(wb_movement_ts, paste0(Settings$HEISResultsPath,"movement_time_series.xlsx")) + + + + + diff --git a/R/AdditionalTools/CheckGeoInfo.R b/R/AdditionalTools/CheckGeoInfo.R new file mode 100644 index 00000000..f49b85a3 --- /dev/null +++ b/R/AdditionalTools/CheckGeoInfo.R @@ -0,0 +1,80 @@ +rm(list=ls()) + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(readxl) + +shs <- excel_sheets(Settings$GeoInfoFilePath) +D <- data.table() +for(sh in shs[-1:-6]){ + D0 <- data.table(read_excel(path = Settings$GeoInfoFilePath, sheet = sh)) + D0 <- D0[,.(Geo4,CountyFa)] + setnames(D0,"CountyFa",paste0("CountyFa",sh)) + if(nrow(D)==0){ + D <- copy(D0) + }else{ + D <- merge(D,D0,by="Geo4",all = TRUE) + } +} + +E <- data.table() +for(year in 77:Settings$endyear){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"GeoInfo.rda")) + E0 <- GeoInfo[,.N,by=Geo4][order(Geo4)] + setnames(E0,"N",paste0("N",year)) + if(nrow(E)==0){ + E <- copy(E0) + }else{ + E <- merge(E,E0,by="Geo4",all = TRUE) + } +} + +rm(D0,E0,sh,shs,year,GeoInfo) + +G <- merge(D[,.(Geo4,CountyFa81,CountyFa96)],E) +#View(G) +ucc <- G[is.na(CountyFa96),Geo4] + +Old <- D[Geo4 %in% ucc] +Old <- Old[order(Geo4)] +for(i in 1:nrow(Old)){ + oc <- Old[i,Geo4] + s <- Old[i,CountyFa76] + if(is.na(s)) + s <- Old[i,CountyFa81] + if(is.na(s)) + s <- Old[i,CountyFa82] + nc <- G[CountyFa96==s,Geo4] + cat("\n",oc," : ",nc," # ", s) +} + + +FE <- data.table() +for(year in 77:Settings$endyear){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"GeoInfo.rda")) + FE0 <- GeoInfo[,.N,by=FGeo4] + setnames(FE0,"N",paste0("N",year)) + if(nrow(FE)==0){ + FE <- copy(FE0) + }else{ + FE <- merge(FE,FE0,by="FGeo4",all = TRUE) + } +} +FE <- FE[FGeo4!="2201"] +sapply(FE[,-1],function(X){length(X[!is.na(X)])}) + +FE[is.na(N81) & !is.na(N80)] +FE[is.na(N86) & !is.na(N85)] + +View(FE[FGeo4 %in% c("0910","2110","2911")]) +View(E[Geo4 %in% c("0910","2110","2911")]) + + +for(year in 77:Settings$endyear){ + print(year) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"GeoInfo.rda")) + A <- GeoInfo[Geo2=="29",.N,by=FGeo4] + print(A) +} diff --git a/R/AdditionalTools/DurableItemsStats.R b/R/AdditionalTools/DurableItemsStats.R new file mode 100644 index 00000000..59cb9a7e --- /dev/null +++ b/R/AdditionalTools/DurableItemsStats.R @@ -0,0 +1,100 @@ +# DurableItemsStats (calculations of scrap value & depretiations) +# Run after 133-HHDurableExpenditures +# Copyright © 2020: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() +cat("\n\n================ Durable Items Stats ==============================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +DurableItems <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_DurableItems)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file = paste0(Settings$HEISProcessedPath,"Y", + year,"DurableData_Detail.rda")) + + load(file=paste0(Settings$HEISWeightsPath, + Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights<-HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + DurableData_Detail<-merge(DurableData_Detail,HHWeights,by="HHID") + + AVX <- DurableData_Detail[Durable_Exp>0, + .(Exp=weighted.mean(Durable_Exp,Weight)), + by=Item] + AVS <- DurableData_Detail[Durable_Sale>0, + .(Sale=weighted.mean(Durable_Sale,Weight)), + by=Item] + + DurableBought <- dcast(DurableData_Detail[Durable_Exp>0],HHID ~ Item, + value.var = "Durable_Exp",fun.aggregate = length) + DurableSold <- dcast(DurableData_Detail[Durable_Sale>0],HHID ~ Item, + value.var = "Durable_Sale",fun.aggregate = length) + Bought <- merge(DurableBought,HHWeights,all.y = TRUE) + Bought[is.na(Bought)] <- 0 + BoughtStats <- Bought[,lapply(.SD, weighted.mean,Weight), + .SDcols=2:(ncol(Bought)-1)] + Sold <- merge(DurableSold,HHWeights,all.y = TRUE) + Sold[is.na(Sold)] <- 0 + SoldStats <- Sold[,lapply(.SD, weighted.mean,Weight),.SDcols=2:(ncol(Sold)-1)] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year, + "OwnsDurableItems.rda")) + + OwnsDurableItems <- merge(OwnsDurableItems,HHWeights,by="HHID") + Has <- OwnsDurableItems[,lapply(.SD, weighted.mean,Weight), + .SDcols=2:(ncol(OwnsDurableItems)-1)] + Hasm <- melt(Has,measure.vars = names(Has), + variable.name = "Item",value.name = "Has") + Boughtm <- melt(BoughtStats,measure.vars = names(BoughtStats), + variable.name = "Item",value.name = "Bought") + Soldm <- melt(SoldStats,measure.vars = names(SoldStats), + variable.name = "Item",value.name = "Sold") + + DurableItemsStats <- merge(AVX,AVS) + DurableItemsStats <- merge(DurableItemsStats,Boughtm) + DurableItemsStats <- merge(DurableItemsStats,Soldm) + DurableItemsStats <- merge(DurableItemsStats,Hasm) + save(DurableItemsStats, file=paste0(Settings$HEISProcessedPath,"Y",year, + "DurableItemsStats.rda")) +} +DurableItemsStats[,Year:=NA_integer_] +BigDT <- DurableItemsStats[0] +for(year in (Settings$startyear:Settings$endyear)){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"DurableItemsStats.rda")) + DurableItemsStats[,Year:=year] + BigDT <- rbind(BigDT,DurableItemsStats) +} + +BigDT[,LifeTime:=Has/Bought] +BigDT[,ScrapShare:=Sale/Exp] +ADT <- BigDT[,.(HasMin=min(Has), HasMax=max(Has), + HasMean=mean(Has),HasMedian=median(Has), + BoughtMin=min(Bought), BoughtMax=max(Bought), + BoughtMean=mean(Bought), BoughtMedian=median(Bought)),by=Item] +ADT[,ltmin:=HasMin/BoughtMin] +ADT[,ltmax:=HasMax/BoughtMax] +ADT[,ltmean:=HasMean/BoughtMean] +ADT[,ltmedian:=HasMedian/BoughtMedian] + +View(ADT) +View(BigDT) +View(BigDT[,.(LifeTimeAverage=mean(LifeTime)),by=Item]) + +ggplot(BigDT,aes(x=LifeTime)) + + geom_histogram(position = "identity")+ + facet_grid(.~Item) + +endTime <- proc.time() +cat("\n\n=========================\nIt took",(endTime-startTime)[3], "seconds.") diff --git a/R/AdditionalTools/GeoInfoSaver.R b/R/AdditionalTools/GeoInfoSaver.R new file mode 100644 index 00000000..743abf86 --- /dev/null +++ b/R/AdditionalTools/GeoInfoSaver.R @@ -0,0 +1,132 @@ +rm(list=ls()) + +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +for(year in max(77,Settings$startyear):86){ # 77 i the first year with county data + cat("\nYear",year) + load(file=paste0(Settings$HEISProcessedPath, + "Y",year,"HHBase.rda")) + GeoInfo <- copy(HHBase[,.(HHID, + Geo2=substr(sprintf("%09d",HHID),2,3), + Geo4=substr(sprintf("%09d",HHID),2,5))]) + if(year %in% 84:86){ + GeoInfo[Geo4=="2824", Geo4:="2803"] # Jaram + GeoInfo[Geo4=="2809", Geo4:="2804"] # Shirvan + GeoInfo[Geo4=="2813", Geo4:="2805"] # Faruj # Guess! + GeoInfo[Geo4=="2825", Geo4:="2806"] # Mane & Semelqan + + GeoInfo[Geo4=="2903", Geo4:="2901"] # Birjand + GeoInfo[Geo4=="2912", Geo4:="2906"] # Sarbishe # Just a guess + GeoInfo[Geo4=="2921", Geo4:="2905"] # Nehbandan + GeoInfo[Geo4=="2911", Geo4:="2903"] # Serayan # Just a guess + #GeoInfo[Geo4=="0911", Geo4:="2907"] # Ferdows + } + + cat(":\t",length(unique(GeoInfo$Geo2))) + cat(":\t",GeoInfo[order(Geo2),Geo2][c(1,nrow(GeoInfo))]) + cat(":\t",length(unique(GeoInfo$Geo4))) + cat(":\t",GeoInfo[order(Geo4),Geo4][c(1,nrow(GeoInfo))]) + save(GeoInfo, file=paste0(Settings$HEISProcessedPath, + "Y",year,"GeoInfo.rda")) + +} + +for(year in 87:91){ + cat("\nYear",year) + DR <- data.table(read_excel(paste0("C:/Users/Majid/Dropbox/HEIS/HEIS-Share/DataSummary/13", + year,"/SumR",year,".xlsx"))) + DU <- data.table(read_excel(paste0("C:/Users/Majid/Dropbox/HEIS/HEIS-Share/DataSummary/13", + year,"/SumU",year,".xlsx"))) + s <- "ADDRESS" + if("shr" %in% names(DR)) + s <- c(s,"shr") + if("Shr" %in% names(DR)) + s <- c(s,"Shr") + if("Adr85_19" %in% names(DR)) + s <- c(s,"Adr85_19") + if("adr85_19" %in% names(DR)) + s <- c(s,"adr85_19") + + D <- rbind(DR[,..s],DU[,..s]) + setnames(D,"ADDRESS","HHID") + rm(DR,DU) + D[,Geo2:=substr(HHID,2,3)] + + if("shr" %in% names(D)) + setnames(D,"shr","Shr") + if("adr85_19" %in% names(D)) + setnames(D,"adr85_19","Adr85_19") + if("Shr" %in% names(D)){ + D[,Shr:=sprintf("%02d",as.integer(Shr))] + D[,Geo4:=paste0(Geo2,Shr)] + }else{ + D[,Geo4:=substr(Adr85_19,1,4)] + } + D[,HHID:=as.numeric(HHID)] + + D[Geo2=="30" & Geo4=="2305", Geo4:="3001"] + D[Geo2=="30" & Geo4=="2308", Geo4:="3002"] + D[Geo2=="30" & Geo4=="2315", Geo4:="3003"] + + GeoInfo <- D[,.(HHID,Geo2,Geo4)] + cat(":\t",length(unique(GeoInfo$Geo2))) + cat(":\t",GeoInfo[order(Geo2),Geo2][c(1,nrow(GeoInfo))]) + cat(":\t",length(unique(GeoInfo$Geo4))) + cat(":\t",GeoInfo[order(Geo4),Geo4][c(1,nrow(GeoInfo))]) + save(GeoInfo, file=paste0(Settings$HEISProcessedPath, + "Y",year,"GeoInfo.rda")) +} + +for(year in 92:max(92,Settings$endyear)){ + cat("\nYear",year) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + GeoInfo <- HHBase[,.(HHID, + Geo2=substr(HHID,2,3), + Geo4=substr(HHID,2,5))] + # if(year %in% 95:96) GeoInfo[Geo4=="2909", Geo4:="2911"] # Tabas (3) # This is just a guess! + if(year >=97) cat("Check this line for, What is Tabas code for >=97?") + cat(":\t",length(unique(GeoInfo$Geo2))) + cat(":\t",GeoInfo[order(Geo2),Geo2][c(1,nrow(GeoInfo))]) + cat(":\t",length(unique(GeoInfo$Geo4))) + cat(":\t",GeoInfo[order(Geo4),Geo4][c(1,nrow(GeoInfo))]) + save(GeoInfo, file=paste0(Settings$HEISProcessedPath, + "Y",year,"GeoInfo.rda")) +} + + +for(year in max(77,Settings$startyear):Settings$endyear){ + cat("\nYear",year) + load(file=paste0(Settings$HEISProcessedPath, + "Y",year,"GeoInfo.rda")) + GeoInfo[,FGeo4:=Geo4] + + GeoInfo[Geo4=="0901", FGeo4:="2801"] # Esfarayen + GeoInfo[Geo4=="0902", FGeo4:="2802"] # Bojnourd + GeoInfo[Geo4=="0903", FGeo4:="2901"] # Birjand + GeoInfo[Geo4=="0909", FGeo4:="2804"] # Shirvan + GeoInfo[Geo4=="0910", FGeo4:="2911"] # Tabas (1) + GeoInfo[Geo4=="0911", FGeo4:="2907"] # Ferdows + GeoInfo[Geo4=="0912", FGeo4:="2904"] # Qaenat + GeoInfo[Geo4=="0921", FGeo4:="2905"] # Nehbandan + GeoInfo[Geo4=="0924", FGeo4:="2803"] # Jajarm + GeoInfo[Geo4=="0925", FGeo4:="2806"] # Mane & Semelqan + GeoInfo[Geo4=="2110", FGeo4:="2911"] # Tabas (2) + GeoInfo[Geo4=="2305", FGeo4:="3001"] # Karaj + GeoInfo[Geo4=="2308", FGeo4:="3002"] # Savojbolaq + GeoInfo[Geo4=="2315", FGeo4:="3003"] # Nazarabad + + GeoInfo[,FGeo2:=substr(FGeo4,1,2)] + + cat(":\t",length(unique(GeoInfo$FGeo2))) + cat(":\t",length(unique(GeoInfo$FGeo4))) + + save(GeoInfo, file=paste0(Settings$HEISProcessedPath, + "Y",year,"GeoInfo.rda")) +} + diff --git a/R/AdditionalTools/WeightsSaver.R b/R/AdditionalTools/WeightsSaver.R new file mode 100644 index 00000000..473b05df --- /dev/null +++ b/R/AdditionalTools/WeightsSaver.R @@ -0,0 +1,71 @@ +rm(list = ls()) + +cat("\n\n================ WeightsSaver =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(RODBC) +library(data.table) +library(stringr) +library(tcltk) +library(XLConnect) +library(readxl) +flist <- tk_choose.files() +starttime <- proc.time() + +HHWeights <- data.table(HHID=NA_integer_,Year=NA_integer_,Weight=NA_real_)[0] + +for(f in flist){ + year <- as.numeric(str_extract_all(f, "[0-9]+")[[1]]) + year <- year[length(year)] + s <- file_path_sans_ext(f) + RU <- substr(s,nchar(s)-2,nchar(s)-2) + sh <- excel_sheets(f) + + if(year==76){ + Query <-"Select R_U, OSTAN, BLOCK, KHANEVAR, weight from [" + }else if(year %in% 77:82){ + Query <- "Select R_U, OSTAN, SHAHRESTAN, BLOCK, KHANEVAR, weight from [" + }else if(year %in% 88:89){ + Query <- "Select ADDRESS, Weight from [" + }else{ + Query <- "Select ADDRESS, weight from [" + } + + Query <- paste0(Query,sh,"$]") + cnx <- odbcConnectExcel2007(f) + mt <- data.table(sqlQuery(cnx,query=Query)) + close(cnx) + + rm(cnx) + + if(year %in% 63:75){ + mt[,HHID:=as.integer(paste(ZONE,OSTAN,HOUSEHOLD,sep=""))] + }else if(year==76){ + mt[,HHID:=as.integer(paste(R_U,sprintf("%02d", OSTAN), KHANEVAR %/% 10000, + sprintf("%03d",KHANEVAR %% 1000),sep=""))] + }else if(year %in% 77:82){ + mt[,HHID:=as.integer(paste(R_U,sprintf("%02d", OSTAN), sprintf("%02d", SHAHRESTAN),KHANEVAR %/% 10000, + sprintf("%03d",KHANEVAR %% 1000),sep=""))] + }else{ + setnames(mt,"ADDRESS","HHID") + } + + mt[,Year:=year] + if("weight" %in% names(mt)) + setnames(mt,"weight","Weight") + setkey(mt,HHID,Year) + + mt <- mt[,.(HHID,Year,Weight)] + HHWeights <- rbind(HHWeights,mt) + if(min(HHWeights$Year)!=year || max(HHWeights$Year)!=year) + warning("More than one year in data!") +} + +save(HHWeights,file = paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) +cat(" seconds. ") \ No newline at end of file diff --git a/R/Archive/02-BuildHHBase-old.R b/R/Archive/02-BuildHHBase-old.R new file mode 100644 index 00000000..77a2304a --- /dev/null +++ b/R/Archive/02-BuildHHBase-old.R @@ -0,0 +1,146 @@ +# 02-BuildHHBase.R +# As each table in the HEIS data cover different number of households, we create +# a Base dataset for households that will be used in merging. This dataset +# contains the basic information of household that are known before the +# questionare is filled, such as the date (Year, Quarter, Month), and geographic +# information (Province, County). +# +# Copyright © 2015: Majid Einian +# Licence: GPL-3 +# + + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ BuildHHBase =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +dir.create(Settings$HEISDataPath,showWarnings = FALSE) + + +library(RODBC) +library(foreign) +library(data.table) + +# For Years 1363 to 1386 ---------------------------------------------- +for(year in 63:86) +{ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(year %in% 63:75){ + UD <- data.table(read.dbf(paste0(Settings$HEISSummaryPath,"1363-1375/U",year,"_SUM.DBF",sep=""),as.is = TRUE))[,c("ZONE","OSTAN","HOUSEHOLD"),with=FALSE] + RD <- data.table(read.dbf(paste("../DataSummary/1363-1375/R",year,"_SUM.DBF",sep=""),as.is = TRUE))[,c("ZONE","OSTAN","HOUSEHOLD"),with=FALSE] + }else if(year %in% c(76:86)){ + if(year==76){ + Query <-"Select R_U, OSTAN, BLOCK, KHANEVAR from [Sum" + }else if(year %in% 77:82){ + Query <- "Select R_U, OSTAN, SHAHRESTAN, BLOCK, KHANEVAR from [Sum" + }else if(year %in% 83:86){ + Query <- "Select Address from [Sum" + } + cnxu <- odbcConnectExcel2007(paste("../DataSummary/13",year,"/SumU",year,".xlsx",sep="")) + UD <- data.table(sqlQuery(cnxu,query=paste(Query,"U",year,"$]",sep=""))) + close(cnxu) + cnxr <- odbcConnectExcel2007(paste("../DataSummary/13",year,"/SumR",year,".xlsx",sep="")) + RD <- data.table(sqlQuery(cnxr,query=paste(Query,"R",year,"$]",sep=""))) + close(cnxr) + rm(cnxr,cnxu) + } + + UD <- UD[, lapply(.SD, as.numeric)] + RD <- RD[, lapply(.SD, as.numeric)] + + + UD[,Region:=factor(x="Urban",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + RD[,Region:=factor(x="Rural",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + + cat(nrow(UD),", ",nrow(RD)) + + HHBase <- rbind(RD,UD) + if(year %in% 63:75) + { + HHBase[,HHID:=as.numeric(paste(ZONE,sprintf("%02d", OSTAN),sprintf("%04d", HOUSEHOLD),sep=""))] + } + else if(year==76){ + HHBase[,HHID:=as.numeric(paste(R_U,sprintf("%02d", OSTAN), KHANEVAR %/% 10000, + sprintf("%03d",KHANEVAR %% 1000),sep=""))] + }else if(year %in% 77:82){ + HHBase[,HHID:=as.numeric(paste(R_U,sprintf("%02d", OSTAN), sprintf("%02d", SHAHRESTAN),KHANEVAR %/% 10000, + sprintf("%03d",KHANEVAR %% 1000),sep=""))] + }else if(year %in% 83:86){ + setnames(HHBase,"Address","HHID") + } + + HHBase[,Year:=year] + HHBase[,Quarter:=as.numeric(HHID %% 10000 %/% 1000)] + if(year==74) + HHBase[,Quarter:=as.numeric(HHID %% 100000 %/% 10000)] + HHBase[,Month:=NA_integer_] + + HHBase <- HHBase[,c("HHID","Region","Year","Quarter","Month"),with=FALSE] + +# save(HHBase,year,file=paste("Data/Y",year,"HHBase.rda",sep="")) +} + +# For Years 1387 to 1392 ---------------------------------------------- +for (year in 87:92) +{ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + cns<-odbcConnectAccess2007(paste("../DataRAW/",year,".mdb",sep="")) + U <- data.table(sqlQuery(cns,paste("Select Address, MahMorajeh from U",year,ifelse(year>=92,"Data",""),sep=""))) + R <- data.table(sqlQuery(cns,paste("Select Address, MahMorajeh from R",year,ifelse(year>=92,"Data",""),sep=""))) + close(cns) + + U <- U[, lapply(.SD, as.numeric)] + R <- R[, lapply(.SD, as.numeric)] + + setnames(U,c("HHID","Month")) + setnames(R,c("HHID","Month")) + + cnxu <- odbcConnectExcel2007(paste("../DataSummary/13",year,"/SumU",year,".xlsx",sep="")) + UD <- data.table(sqlQuery(cnxu,query=paste("Select Address from [SumU",year,"$]",sep=""))) + close(cnxu) + cnxr <- odbcConnectExcel2007(paste("../DataSummary/13",year,"/SumR",year,".xlsx",sep="")) + RD <- data.table(sqlQuery(cnxr,query=paste("Select Address from [SumR",year,"$]",sep=""))) + close(cnxr) + + UD <- UD[, lapply(.SD, as.numeric)] + RD <- RD[, lapply(.SD, as.numeric)] + + setnames(UD,"HHID") + setnames(RD,"HHID") + + rm(cns,cnxr,cnxu) + + U <- U[HHID %in% UD$HHID,] + R <- R[HHID %in% RD$HHID,] + + cat(nrow(UD),", ",nrow(RD)) + rm(UD,RD) + + U[,Region:=factor(x="Urban",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + R[,Region:=factor(x="Rural",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + + + HHBase <- rbind(U,R) + rm(U,R) + + HHBase[,Year:=year] + HHBase[,Month:=ifelse(Month==1,12,Month - 1)] + HHBase[,Quarter:=(Month-1)%/%3+1] + + HHBase <- HHBase[,c("HHID","Region","Year","Quarter","Month"),with=FALSE] + + save(HHBase,year,file=paste("Data/Y",year,"HHBase.rda",sep="")) +} + +endtime <- proc.time() + +cat("\n\n============================\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/02-BuildHHBase.R b/R/Archive/02-BuildHHBase.R new file mode 100644 index 00000000..3e038631 --- /dev/null +++ b/R/Archive/02-BuildHHBase.R @@ -0,0 +1,220 @@ +# 02-BuildHHBase.R +# As each table in the HEIS data cover different number of households, we create +# a Base dataset for households that will be used in merging. This dataset +# contains the basic information of household that are known before the +# questionare is filled, such as the date (Year, Quarter, Month), and geographic +# information (Province, County). +# +# Copyright © 2015: Majid Einian +# Licence: GPL-3 +# + + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ BuildHHBase =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +dir.create(Settings$HEISDataPath,showWarnings = FALSE) + + +library(RODBC) +library(foreign) +library(data.table) + +load(Settings$weightsFile) + +for(year in 63:93) +{ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + l <- dir(path=Settings$HEISRawPath, pattern=glob2rx(paste0(year,".*")),ignore.case = TRUE) + + if(year==80){ + cns<-odbcConnectAccess2007(paste0(Settings$HEISRawPath, l)) + }else{ + cns<-odbcConnectAccess2007(paste0(Settings$HEISRawPath, l)) + } + + tbls <- data.table(sqlTables(cns))[TABLE_TYPE=="TABLE",]$TABLE_NAME + + head(sqlTables(cns),10) + + if(year <=86){ + Q <- "Select Address from " + utbl <- tbls[grepl("U\\d\\dP2",tbls)] + rtbl <- tbls[grepl("R\\d\\dP2",tbls)] + }else{ + Q <- "Select Address, MahMorajeh from " + utbl <- tbls[grepl("U\\d\\dData",tbls)] + rtbl <- tbls[grepl("R\\d\\dData",tbls)] + } + + if(year==80){ + cns2 <- + } + U <- data.table(sqlQuery(cns,paste0(Q,utbl))) + R <- data.table(sqlQuery(cns,paste0(Q,rtbl))) + d <- sqlFetch(cns,rtbl) + + tbls <- sqlTables(cns) + tbl <- tbls[10,3] + RD <- sqlQuery(cns,paste0("Select Address from ",tbl)) + RD <- sqlQuery(cns,paste0("Select Address from [",tbl,"]")) + sqlQuery(cns, paste0("SELECT COUNT(*) AS n FROM [",tbl,"]")) + head(RD) + + close(cns) + + U <- U[, lapply(.SD, as.numeric)] + R <- R[, lapply(.SD, as.numeric)] + + U[,Region:=factor(x="Urban",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + R[,Region:=factor(x="Rural",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + + HHBase <- rbind(R,U) + setnames(HHBase,"Address","HHID") + + setkey(HHBase,HHID) + + HHBase[,Quarter:=as.numeric(HHID %% 10000 %/% 1000)] + if(year <=86){ + HHBase[,Month:=NA_integer_] + }else{ + HHBase[,Month:=ifelse(MahMorajeh==1,12,MahMorajeh-1)] + HHBase[,MahMorajeh:=NULL] + } + cat(nrow(U),nrow(R)) + + W <- AllWeights[Year==year,c("HHID","Weight"),with=FALSE] + setkey(W,HHID) + + HHBase <- merge(HHBase,W,all.x = T,by="HHID") + save(HHBase,year,file=paste(Settings$HEISDataPath,"Y",year,"HHBase.rda",sep="")) +} + + +# For Years 1363 to 1386 ---------------------------------------------- +for(year in 63:86) +{ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(year %in% 63:75){ + UD <- data.table(read.dbf(paste0(Settings$HEISSummaryPath,"1363-1375/U",year,"_SUM.DBF",sep=""),as.is = TRUE))[,c("ZONE","OSTAN","HOUSEHOLD"),with=FALSE] + RD <- data.table(read.dbf(paste("../DataSummary/1363-1375/R",year,"_SUM.DBF",sep=""),as.is = TRUE))[,c("ZONE","OSTAN","HOUSEHOLD"),with=FALSE] + }else if(year %in% c(76:86)){ + if(year==76){ + Query <-"Select R_U, OSTAN, BLOCK, KHANEVAR from [Sum" + }else if(year %in% 77:82){ + Query <- "Select R_U, OSTAN, SHAHRESTAN, BLOCK, KHANEVAR from [Sum" + }else if(year %in% 83:86){ + Query <- "Select Address from [Sum" + } + cnxu <- odbcConnectExcel2007(paste("../DataSummary/13",year,"/SumU",year,".xlsx",sep="")) + UD <- data.table(sqlQuery(cnxu,query=paste(Query,"U",year,"$]",sep=""))) + close(cnxu) + cnxr <- odbcConnectExcel2007(paste("../DataSummary/13",year,"/SumR",year,".xlsx",sep="")) + RD <- data.table(sqlQuery(cnxr,query=paste(Query,"R",year,"$]",sep=""))) + close(cnxr) + rm(cnxr,cnxu) + } + + UD <- UD[, lapply(.SD, as.numeric)] + RD <- RD[, lapply(.SD, as.numeric)] + + + UD[,Region:=factor(x="Urban",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + RD[,Region:=factor(x="Rural",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + + cat(nrow(UD),", ",nrow(RD)) + + HHBase <- rbind(RD,UD) + if(year %in% 63:75) + { + HHBase[,HHID:=as.numeric(paste(ZONE,sprintf("%02d", OSTAN),sprintf("%04d", HOUSEHOLD),sep=""))] + } + else if(year==76){ + HHBase[,HHID:=as.numeric(paste(R_U,sprintf("%02d", OSTAN), KHANEVAR %/% 10000, + sprintf("%03d",KHANEVAR %% 1000),sep=""))] + }else if(year %in% 77:82){ + HHBase[,HHID:=as.numeric(paste(R_U,sprintf("%02d", OSTAN), sprintf("%02d", SHAHRESTAN),KHANEVAR %/% 10000, + sprintf("%03d",KHANEVAR %% 1000),sep=""))] + }else if(year %in% 83:86){ + setnames(HHBase,"Address","HHID") + } + + HHBase[,Year:=year] + HHBase[,Quarter:=as.numeric(HHID %% 10000 %/% 1000)] + if(year==74) + HHBase[,Quarter:=as.numeric(HHID %% 100000 %/% 10000)] + HHBase[,Month:=NA_integer_] + + HHBase <- HHBase[,c("HHID","Region","Year","Quarter","Month"),with=FALSE] + +# save(HHBase,year,file=paste("Data/Y",year,"HHBase.rda",sep="")) +} + +# For Years 1387 to 1392 ---------------------------------------------- +for (year in 87:92) +{ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + cns<-odbcConnectAccess2007(paste("../DataRAW/",year,".mdb",sep="")) + U <- data.table(sqlQuery(cns,paste("Select Address, MahMorajeh from U",year,ifelse(year>=92,"Data",""),sep=""))) + R <- data.table(sqlQuery(cns,paste("Select Address, MahMorajeh from R",year,ifelse(year>=92,"Data",""),sep=""))) + close(cns) + + U <- U[, lapply(.SD, as.numeric)] + R <- R[, lapply(.SD, as.numeric)] + + setnames(U,c("HHID","Month")) + setnames(R,c("HHID","Month")) + + cnxu <- odbcConnectExcel2007(paste("../DataSummary/13",year,"/SumU",year,".xlsx",sep="")) + UD <- data.table(sqlQuery(cnxu,query=paste("Select Address from [SumU",year,"$]",sep=""))) + close(cnxu) + cnxr <- odbcConnectExcel2007(paste("../DataSummary/13",year,"/SumR",year,".xlsx",sep="")) + RD <- data.table(sqlQuery(cnxr,query=paste("Select Address from [SumR",year,"$]",sep=""))) + close(cnxr) + + UD <- UD[, lapply(.SD, as.numeric)] + RD <- RD[, lapply(.SD, as.numeric)] + + setnames(UD,"HHID") + setnames(RD,"HHID") + + rm(cns,cnxr,cnxu) + + U <- U[HHID %in% UD$HHID,] + R <- R[HHID %in% RD$HHID,] + + cat(nrow(UD),", ",nrow(RD)) + rm(UD,RD) + + U[,Region:=factor(x="Urban",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + R[,Region:=factor(x="Rural",levels=c("Urban","Rural"), + labels=c("Urban","Rural"))] + + + HHBase <- rbind(U,R) + rm(U,R) + + HHBase[,Year:=year] + HHBase[,Month:=ifelse(Month==1,12,Month - 1)] + HHBase[,Quarter:=(Month-1)%/%3+1] + + HHBase <- HHBase[,c("HHID","Region","Year","Quarter","Month"),with=FALSE] + + save(HHBase,year,file=paste("Data/Y",year,"HHBase.rda",sep="")) +} + +endtime <- proc.time() + +cat("\n\n============================\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/03.1-NonMatching.R b/R/Archive/03.1-NonMatching.R new file mode 100644 index 00000000..d2f40f10 --- /dev/null +++ b/R/Archive/03.1-NonMatching.R @@ -0,0 +1,46 @@ +# 03.1-NonMatching +# Print the info on non-matching HH weights +# +# Copyright © 2017: Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ NonMatching ===================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +for(year in (Settings$startyear:Settings$endyear)){ + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + + D <- copy(HHBase) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + cat("\n",year,":",nrow(D), + ",",nrow(D[!is.na(Weight)]), + ",",nrow(D[is.na(Weight)])) +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/10.1-SampleSize.R b/R/Archive/10.1-SampleSize.R new file mode 100644 index 00000000..7210ec5b --- /dev/null +++ b/R/Archive/10.1-SampleSize.R @@ -0,0 +1,41 @@ +# 04.1-SampleSize.R +# Print the Urban/Rural Sample Size for all years +# +# Copyright © 2017: Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ SampleSize ===================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) + +# BigD <- data.table(HHID=NA,Region=NA,Year=NA,Quarter=NA,Month=NA,ProvinceCode=NA)[0] + + +for(year in (Settings$startyear:Settings$endyear)) +{ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + D <- merge(HHBase,HHI, by="HHID") + + cat("\n",year,",",nrow(D), + ",",nrow(D[Region=="Rural"]), + ",",nrow(D[Region=="Urban"]), + ",",sum(D$Size), + ",",sum(D[Region=="Rural"]$Size), + ",",sum(D[Region=="Urban"]$Size)) + + #rm(HHBase) +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/112-lactating women.R b/R/Archive/112-lactating women.R new file mode 100644 index 00000000..d5e9a13c --- /dev/null +++ b/R/Archive/112-lactating women.R @@ -0,0 +1,148 @@ +#112-lactating women.R +#build a column that identifies lactating women + +#zahra shahidi +#2019 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ lactating women =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(stringr) + +P1Cols <- data.table(read_excel(Settings$MetaDataFilePath, Settings$MDS_P1Cols)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Food)) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights>-HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + + P1 <- rbind(Tables[[paste0("R",year,"P1")]],Tables[[paste0("U",year,"P1")]]) + nP1 <- names(P1) + if(length(which(sapply(P1, is.character)))>0){ + P1c <- P1[,lapply(.SD,iconv,"WINDOWS-1252","UTF-8"), .SDcols=sapply(P1,is.character)] + P1nc <- P1[,!sapply(P1,is.character),with=FALSE] + P1 <- cbind(P1c,P1nc)[,nP1,with=FALSE] + } + + a <- unlist(P1Cols[P1Cols$Year==year,]) + ind <- which(!is.na(a))[-1] + setnames(P1,a[ind],names(a[ind])) + + f <- function(x){as.numeric(str_trim(x))} + P1 <- P1[, lapply(.SD, f)] + + + + P1[,Relationship :=factor(Relationship, levels=1:9, + labels=c("Head","Spouse","Child","Child-in-Law", + "Grand-Child","Parent","Sister/Brother", + "Other Family","Non-Family"))] + + P1[,Sex := factor(Sex, levels=1:2, + labels=c("Male","Female"))] + + + + P <- copy(P1) + + P <- P[order(P$HHID),] + + B <- P[IndivNo==1] + setnames(B,2:length(B),sapply(X=names(B)[2:length(B)],function(X){paste("H",X,sep="")})) + B <- B[order(HHID,HIndivNo)] + B <- B[!duplicated(B$HHID),] + + + P[,Size:=1] + P[,NKids:=ifelse(Age<18,1,0)] + + P[,NInfants:=ifelse(Age<=2,1,0)] + + if(year %in% 83:84){ + for (col in c("Age")) + P[is.na(get(col)),(col):=0] + } + + P[,NInfants0:=ifelse(Age==0,1,0)] + + P[,NSmallKids:=ifelse(Age>=3 & Age<=13, 1, 0)] + + + PSum <- P[,lapply(.SD,sum,na.rm=TRUE), + .SDcols=c("Size","NInfants0"), + by="HHID"] + HHI <- merge(B,PSum,by="HHID") + + + ft <- FoodTables[Year == year] + tab <- ft$Table + if (is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","FoodExpenditure")) + TF <- TF[,pcols,with=FALSE] + if(year %in% 83:98){ + TF <- TF[Code ==11413] + TF[,FoodExpenditure:=as.numeric(FoodExpenditure)] + }else if(year %in% 69:82){ + TF <- TF[Code ==13137] + TF[,FoodExpenditure:=as.numeric(FoodExpenditure)] + } + + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + TF <- TF[,lapply(.SD,sum),by=HHID] + TFL<-merge(HHI,TF,by="HHID", all.x = T) + for (col in c("FoodExpenditure")) + TFL[is.na(get(col)), (col) := 0] + TFL<-TFL[,lactating:=ifelse(NInfants0>0 & FoodExpenditure==0,1,0)] + lactating<-TFL[,.(HHID,lactating)] + + TFL<-merge(TFL,HHWeights,by="HHID",all = T) + TFL<-merge(TFL,HHBase[,.(HHID,ProvinceCode,NewArea_Name)],by="HHID", all.x = T) + TFL<-TFL[,lac:=sum(lactating*Weight),by="ProvinceCode"] + TFL<-TFL[,infants0:=ifelse(NInfants0>0,1,0)] + TFL<-TFL[,inf:=sum(infants0*Weight), by="ProvinceCode"] + TFL<-TFL[,sahm:=lac/inf] +ostan<-TFL[!duplicated(TFL$ProvinceCode),.(ProvinceCode,sahm,NewArea_Name)] + +TFL<-TFL[,lac_kol:=sum(lactating*Weight)] +TFL<-TFL[,inf_kol:=sum(infants0*Weight)] +sh<-TFL[!duplicated(TFL$lac_kol)] +shirdeh<-sh$lac_kol/sh$inf_kol + + + +save(lactating,file = paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) +cat(lactating[,mean(lactating)],"\n") +cat(shirdeh,"\n") +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/142-Buying and Using of durable goods.R b/R/Archive/142-Buying and Using of durable goods.R new file mode 100644 index 00000000..36c62384 --- /dev/null +++ b/R/Archive/142-Buying and Using of durable goods.R @@ -0,0 +1,156 @@ +# 142-Buying and Using of durable goods.R +# Builds the House Properties data.table for households +# +# Copyright © 2020:Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Buying and Using of durable goods =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(foreign) +library(data.table) +library(stringr) +library(readxl) +library(ggplot2) +library(spatstat) +library(scales) + +########################################################### +######Copy code files from TotalDurable folder###### +#####################to Data Processed folder############## +######################################################### + +Table<-data.table(Year=NA_integer_,Auto=NA_real_,Mobile=NA_real_, + Refrigerator=NA_real_,TV=NA_real_)[0] + +Dep<-data.table(Year=NA_integer_, Buy=NA_real_,Use=NA_real_)[0] + +years <- Settings$startyear:Settings$endyear + +for(year in Settings$startyear:Settings$endyear){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"TotalDurable.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights<-HHWeights[,HHID:=as.numeric(HHID)] + HHHouseProperties<-merge(HHHouseProperties,HHWeights) + HHHouseProperties<-merge(HHHouseProperties,HHBase) + HHHouseProperties<-merge(HHHouseProperties,TotalDurable) + + X <- HHHouseProperties[,.(Auto=weighted.mean(`71117`>0 | `71111`>0 | + `71112`>0 | `71116`>0 ,Weight), + Mobile=weighted.mean(`82113`>0,Weight), + Refrigerator=weighted.mean(`53111`>0 | `53112`>0,Weight), + TV=weighted.mean(`91128`>0 | + `91129`>0,Weight))] + X[,Year:=year] + Table <- rbind(Table,X) + + HHHouseProperties[,weighted.mean(car=="True",Weight)] + HHHouseProperties[,weighted.mean(`71117`>0 | `71111`>0 | + `71112`>0 | `71116`>0 ,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(car=="True",Weight), + # Buy=weighted.mean(`71117`>0 | `71111`>0 | + # `71112`>0 | `71116`>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + # HHHouseProperties[,weighted.mean(motorcycle=="True",Weight)] +# HHHouseProperties[,weighted.mean(`71211`>0 ,Weight)] + + + # HHHouseProperties[,weighted.mean(bike=="True",Weight)] + #HHHouseProperties[,weighted.mean(`71311`>0 ,Weight)] + + #HHHouseProperties[,weighted.mean(radio=="True",Weight)] + #HHHouseProperties[,weighted.mean(cassette=="True",Weight)] + #HHHouseProperties[,weighted.mean(Zabtesot>0 ,Weight)] + + + # HHHouseProperties[,weighted.mean(tvbw=="True",Weight)] + #HHHouseProperties[,weighted.mean(TV_SS>0 ,Weight)] + + + + HHHouseProperties[,weighted.mean(tvcr=="True",Weight)] + HHHouseProperties[,weighted.mean(`91128`>0 | + `91129`>0 ,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(tvcr=="True",Weight), + # Buy=weighted.mean(`91128`>0 | + # `91129`>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + # HHHouseProperties[,weighted.mean(vcr=="True",Weight)] + #HHHouseProperties[,weighted.mean(Video_Player>0 ,Weight)] + + HHHouseProperties[,weighted.mean(computer=="True",Weight)] + HHHouseProperties[,weighted.mean(`91311`>0 ,Weight)] + + HHHouseProperties[,weighted.mean(cellphone=="True",Weight)] + HHHouseProperties[,weighted.mean(`82113`>0 ,Weight)] + X1 <- HHHouseProperties[,.(Use=weighted.mean(cellphone=="True",Weight), + Buy=weighted.mean(`82113`>0 ,Weight))] + X1[,Year:=year] + Dep <- rbind(Dep,X1) + + HHHouseProperties[,weighted.mean(freezer=="True",Weight)] + HHHouseProperties[,weighted.mean(frez_refrig=="True",Weight)] + HHHouseProperties[,weighted.mean(`53112`>0 ,Weight)] + + HHHouseProperties[,weighted.mean(refrigerator=="True",Weight)] + HHHouseProperties[,weighted.mean(`53111`>0 ,Weight)] + + # X1 <- HHHouseProperties[,.(Use=weighted.mean(freezer=="True" | + # refrigerator=="True" | + # frez_refrig=="True",Weight), + # Buy=weighted.mean(`53112`>0 | + # `53111`>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + HHHouseProperties[,weighted.mean(oven=="True",Weight)] + # HHHouseProperties[,weighted.mean(Microwave=="True",Weight)] + HHHouseProperties[,weighted.mean(`53116`>0 ,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(oven=="True" ,Weight), + # Buy=weighted.mean(OjaghGaz>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + #HHHouseProperties[,weighted.mean(vacuum=="True",Weight)] + #HHHouseProperties[,weighted.mean(Jaroobarghi>0 ,Weight)] + + HHHouseProperties[,weighted.mean(washer=="True",Weight)] + HHHouseProperties[,weighted.mean(dishwasher=="True",Weight)] + HHHouseProperties[,weighted.mean(`53113`>0,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(washer=="True" | + # dishwasher=="True",Weight), + # Buy=weighted.mean(Mashin_Lebasshooyi>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + # HHHouseProperties[,weighted.mean(sewing=="True",Weight)] + # HHHouseProperties[,weighted.mean(Charkh_Khayati>0,Weight)] + + #HHHouseProperties[,weighted.mean(fan=="True",Weight)] + #HHHouseProperties[,weighted.mean(cooler_water_movable=="True",Weight)] + #HHHouseProperties[,weighted.mean(Panke>0 ,Weight)] + + HHHouseProperties[,weighted.mean(cooler_gas_movable=="True",Weight)] + HHHouseProperties[,weighted.mean(`53125`>0,Weight)] + +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/154- Food Prices.R b/R/Archive/154- Food Prices.R new file mode 100644 index 00000000..afc19f43 --- /dev/null +++ b/R/Archive/154- Food Prices.R @@ -0,0 +1,53 @@ +#163- Step 3.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Food Prices =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodNonDurable.rda")) + + FoodPrices<-TotalFoodNonDurable[,.(HHID, + LavashPrice,BarbariPrice,TaftoonPrice, Bread_FantasyPrice, + Rice_TaromPrice,Rice_Khareji2Price,Rice_DomsiahPrice, Rice_AshPrice, + MacaroniPrice, + AdasPrice, Loobia_ChitiPrice, Loobia_GhermezPrice, NokhodPrice, + SibzaminiPrice, + Sabzi_KhordanPrice, Sabzi_AshPrice, KahooPrice,KhiarPrice, + Banana_CoconutPrice,CherryPrice,ApplePrice,OrangePrice, + CowMeatPrice,SheepMeatPrice, + PoultryMeat_MPrice, + Fish_North_FreshPrice,Fish_South_FreshPrice,Fish_ConservedPrice, + Egg_MashinPrice, + Milk_PasteurizedPrice, Yogurt_PasturizedPrice,CreamPrice, + Cheese_PasturizedPrice,Cheese_NonPasturizedPrice, + Oil_NabatiPrice,Oil_AnimalPrice,Butter_Animal_PasturizedPrice,Butter_NonAnimalPrice, + GhandPrice,ShekarPrice, + KeshmeshPrice,TokhmePrice,NokhodchiPrice,PistachioPrice + )] + + FoodPrices[FoodPrices == 0] <- NA + +save(FoodPrices,file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/166 other- October2020/166-Step6-FoodPoorMinPrice.R b/R/Archive/166 other- October2020/166-Step6-FoodPoorMinPrice.R new file mode 100644 index 00000000..9457fe06 --- /dev/null +++ b/R/Archive/166 other- October2020/166-Step6-FoodPoorMinPrice.R @@ -0,0 +1,98 @@ +# 166-Step6-FoodPoor.R: Calculate base year basket cost in current year prices +# for each cluster. and find FoodPoor +# +# Copyright © 2019-2020: Arin Shahbazian & Majid Einian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(data.table) +library(spatstat) +library(tidyr) +year<-Settings$baseBundleyear + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + +MD[,Selected_Group:=ifelse((Region=="Urban" & Decile==3) | + (Region=="Rural" & Decile==2),1,0)] + +Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) +Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) +Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size, + EqSizeCalory,Selected_Group)],by="HHID") +Bfd2[is.na(Bfd2)]<-0 +Bfd2[Price<0.1,Price:=NA] + +BaseYearBasket <- Bfd2[Selected_Group==1, + .(FGramspc=weighted.mean(FGrams/EqSizeCalory,Weight*Size), + FKCalspc=weighted.mean(FoodKCalories/EqSizeCalory,Weight*Size)), + by=.(FoodType,Region)] +BaseYearBasket[,BasketCals:=sum(FKCalspc),by=Region] +BaseYearBasket[,StandardFGramspc:=FGramspc*Settings$KCaloryNeed_Adult_WorldBank/BasketCals] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + + MD<-merge(MD,FoodPrices,all.x=TRUE,by="HHID") + + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + + + #i <- 0 + #while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + # i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + # MD[,FPLine:=NULL] + MD[,Selected_Group:=ifelse((Decile==1) | (Decile==2) | (Decile==3) | (Decile==4),1,0)] + MDP <- MD [Selected_Group==1, + .(Bread=min(weighted.mean(LavashPrice,Weight,na.rm = TRUE),weighted.mean(BarbariPrice,Weight,na.rm = TRUE),weighted.mean(TaftoonPrice,Weight,na.rm = TRUE),weighted.mean(Bread_FantasyPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Rice=min(weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE),weighted.mean(Rice_AshPrice,Weight,na.rm = TRUE),weighted.mean(Rice_Khareji2Price,Weight,na.rm = TRUE),weighted.mean(Rice_DomsiahPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Spaghetti=min(weighted.mean(MacaroniPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Beans=min(weighted.mean(AdasPrice,Weight,na.rm = TRUE),weighted.mean(Loobia_ChitiPrice,Weight,na.rm = TRUE),weighted.mean(Loobia_GhermezPrice,Weight,na.rm = TRUE),weighted.mean(NokhodPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Vegetables=min(weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE),weighted.mean(Sabzi_AshPrice,Weight,na.rm = TRUE),weighted.mean(KahooPrice,Weight,na.rm = TRUE),weighted.mean(KhiarPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Potato=min(weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Fruit=min(weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE),weighted.mean(CherryPrice,Weight,na.rm = TRUE),weighted.mean(OrangePrice,Weight,na.rm = TRUE),weighted.mean(ApplePrice,Weight,na.rm = TRUE),na.rm = TRUE), + Meat=min(weighted.mean(CowMeatPrice,Weight,na.rm = TRUE),weighted.mean(SheepMeatPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Chicken=min(weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Fish=min(weighted.mean(Fish_North_FreshPrice,Weight,na.rm = TRUE),weighted.mean(Fish_South_FreshPrice,Weight,na.rm = TRUE),weighted.mean(Fish_ConservedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Egg=min(weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Milk=min(weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Yogurt=min(weighted.mean(Yogurt_PasturizedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Cheese=min(weighted.mean(Cheese_PasturizedPrice,Weight,na.rm = TRUE),weighted.mean(Cheese_NonPasturizedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Oil=min(weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE),weighted.mean(Oil_AnimalPrice,Weight,na.rm = TRUE),weighted.mean(Butter_NonAnimalPrice,Weight,na.rm = TRUE),weighted.mean(Butter_Animal_PasturizedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Nuts=min(weighted.mean(KeshmeshPrice,Weight,na.rm = TRUE),weighted.mean(TokhmePrice,Weight,na.rm = TRUE),weighted.mean(PistachioPrice,Weight,na.rm = TRUE),weighted.mean(NokhodchiPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Sugar=min(weighted.mean(GhandPrice,Weight,na.rm = TRUE),weighted.mean(ShekarPrice,Weight,na.rm = TRUE),na.rm = TRUE)), + by=.(cluster3,Region)] + + #Bfd2[is.na(Bfd2)]<-0 + #Bfd2[Price<0.1,Price:=NA] + # Basket <- Bfd2[Selected_Group==1, + # .(FGramspc=weighted.mean(FGrams/EqSizeCalory,Weight*Size)), + # by=.(FoodType,cluster3)] + MDP2 <- gather(MDP, FoodType, Price, Bread:Sugar, factor_key=TRUE) + + BasketCost <- merge(BaseYearBasket,MDP2,by=c("FoodType","Region"),all.x = T) + BasketCost[,Cost:=(StandardFGramspc/1000)*Price] + FPLineBasket <- BasketCost[,.(FPLine=sum(Cost)),by=cluster3] + + MD <- merge(MD,FPLineBasket,all.x=TRUE,by="cluster3") + + MD[,FoodPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + + cat(unlist(MD[cluster3==1,.(FPLine,weighted.mean(FoodPoor))][1])) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"]," seconds") \ No newline at end of file diff --git a/R/Archive/166 other- October2020/166-sabad95.R b/R/Archive/166 other- October2020/166-sabad95.R new file mode 100644 index 00000000..58597ff5 --- /dev/null +++ b/R/Archive/166 other- October2020/166-sabad95.R @@ -0,0 +1,240 @@ +#703-Bundle 2100\ +# Builds the Food Groups data.table for households +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(data.table) +library(ggplot2) +library(dplyr) +library(data.table) +library(stringr) +library(readxl) +library(spatstat) +library(writexl) +library(tidyr) + +OriginalFoodShare <- data.table(Year=NA_integer_,Share=NA_integer_)[0] + +year<-Settings$baseBundleyear + +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) +BigFData[is.na(FGrams)]<-0 +goosht<-BigFData[FoodType=="Goosht"] +goosht<-goosht[,Goosht_Grams:=FGrams*30 ] +morgh<-BigFData[FoodType=="Morgh"] +morgh<-morgh[,Morgh_Grams:=FGrams*30 ] +mive<-BigFData[FoodType=="Mive"] +mive<-mive[,Mive_Grams:=FGrams*30 ] +nan<-BigFData[FoodType=="Nan"] +nan<-nan[,Nan_Grams:=FGrams*30 ] +sibzamini<-BigFData[FoodType=="Sibzamini"] +sibzamini<-sibzamini[,Sibzamini_Grams:=FGrams*30 ] +makarooni<-BigFData[FoodType=="Makarooni"] +makarooni<-makarooni[,Makarooni_Grams:=FGrams*30 ] +berenj<-BigFData[FoodType=="Berenj"] +berenj<-berenj[,Berenj_Grams:=FGrams*30 ] +hoboobat<-BigFData[FoodType=="Hoboobat"] +hoboobat<-hoboobat[,Hoboobat_Grams:=FGrams*30 ] +sabzi<-BigFData[FoodType=="Sabzi"] +sabzi<-sabzi[,Sabzi_Grams:=FGrams*30 ] +roghan<-BigFData[FoodType=="Roghan"] +roghan<-roghan[,Roghan_Grams:=FGrams*30 ] +ghand<-BigFData[FoodType=="Ghand"] +ghand<-ghand[,Ghand_Grams:=FGrams*30 ] +shir<-BigFData[FoodType=="Shir"] +shir<-shir[,Shir_Grams:=FGrams*30] +panir<-BigFData[FoodType=="Panir"] +panir<-panir[,Panir_Grams:=FGrams*30] +mast<-BigFData[FoodType=="Mast"] +mast<-mast[,Mast_Grams:=FGrams*30] +tokhmemorgh<-BigFData[FoodType=="Tokhmemorgh"] +tokhmemorgh<-tokhmemorgh[,Tokhmemorgh_Grams:=FGrams*30 ] +mahi<-BigFData[FoodType=="Mahi"] +mahi<-mahi[,Mahi_Grams:=FGrams*30 ] +khoshkbar<-BigFData[FoodType=="Khoshkbar"] +khoshkbar<-khoshkbar[,Khoshkbar_Grams:=FGrams*30 ] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + +MD<-merge(MD,goosht[,.(HHID,Goosht_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,morgh[,.(HHID,Morgh_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,mive[,.(HHID,Mive_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,nan[,.(HHID,Nan_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,sibzamini[,.(HHID,Sibzamini_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,makarooni[,.(HHID,Makarooni_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,berenj[,.(HHID,Berenj_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,hoboobat[,.(HHID,Hoboobat_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,sabzi[,.(HHID,Sabzi_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,roghan[,.(HHID,Roghan_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,ghand[,.(HHID,Ghand_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,shir[,.(HHID,Shir_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,panir[,.(HHID,Panir_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,mast[,.(HHID,Mast_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,tokhmemorgh[,.(HHID,Tokhmemorgh_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,mahi[,.(HHID,Mahi_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,khoshkbar[,.(HHID,Khoshkbar_Grams)],by=c("HHID"),all.x = T) +MD[,Selected_Group:=ifelse((Region=="Urban" & Decile==3) | + (Region=="Rural" & Decile==2),1,0)] +for (col in c("Nan_Grams","Berenj_Grams","Goosht_Grams")) + MD[is.na(get(col)), (col) := 0] + +gram <-MD [Selected_Group==1, + .(Nan_Grams= weighted.mean(Nan_Grams/EqSizeCalory,Weight*Size,na.rm = TRUE), + Berenj_Grams= weighted.mean(Berenj_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Makarooni_Grams=weighted.mean(Makarooni_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Hoboobat_Grams=weighted.mean(Hoboobat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Sibzamini_Grams=weighted.mean(Sibzamini_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Sabzi_Grams=weighted.mean(Sabzi_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Mive_Grams=weighted.mean(Mive_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Goosht_Grams=weighted.mean(Goosht_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Morgh_Grams=weighted.mean(Morgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Tokhmemorgh_Grams=weighted.mean(Tokhmemorgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Shir_Grams=weighted.mean(Shir_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Mast_Grams=weighted.mean(Mast_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Roghan_Grams=weighted.mean(Roghan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Ghand_Grams=weighted.mean(Ghand_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Mahi_Grams=weighted.mean(Mahi_Grams/EqSizeCalory,Weight*Size,na.rm = TRUE), + Khoshkbar_Grams=weighted.mean(Khoshkbar_Grams/EqSizeCalory,Weight*Size,na.rm = TRUE), + Panir_Grams=weighted.mean(Panir_Grams/EqSizeCalory,Weight*Size,na.rm = TRUE)),by=c("Region")] + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + + MD<-merge(MD,FoodPrices,all.x=TRUE,by="HHID") + + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + + + #i <- 0 + #while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + # i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + # MD[,FPLine:=NULL] + MD[,Selected_Group:=ifelse((Decile==1) | (Decile==2) | (Decile==3) | (Decile==4),1,0)] + MDP <- MD [Selected_Group==1, + .(Nan_Price=min(weighted.mean(LavashPrice,Weight,na.rm = TRUE),weighted.mean(BarbariPrice,Weight,na.rm = TRUE),weighted.mean(TaftoonPrice,Weight,na.rm = TRUE),weighted.mean(Bread_FantasyPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Berenj_Price=min(weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE),weighted.mean(Rice_AshPrice,Weight,na.rm = TRUE),weighted.mean(Rice_Khareji2Price,Weight,na.rm = TRUE),weighted.mean(Rice_DomsiahPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Makarooni_Price=min(weighted.mean(MacaroniPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Hoboobat_Price=min(weighted.mean(AdasPrice,Weight,na.rm = TRUE),weighted.mean(Loobia_ChitiPrice,Weight,na.rm = TRUE),weighted.mean(Loobia_GhermezPrice,Weight,na.rm = TRUE),weighted.mean(NokhodPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Sabzi_Price=min(weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE),weighted.mean(Sabzi_AshPrice,Weight,na.rm = TRUE),weighted.mean(KahooPrice,Weight,na.rm = TRUE),weighted.mean(KhiarPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Sibzamini_Price=min(weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Mive_Price=min(weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE),weighted.mean(CherryPrice,Weight,na.rm = TRUE),weighted.mean(OrangePrice,Weight,na.rm = TRUE),weighted.mean(ApplePrice,Weight,na.rm = TRUE),na.rm = TRUE), + Goosht_Price=min(weighted.mean(CowMeatPrice,Weight,na.rm = TRUE),weighted.mean(SheepMeatPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Morgh_Price=min(weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Mahi_Price=min(weighted.mean(Fish_North_FreshPrice,Weight,na.rm = TRUE),weighted.mean(Fish_South_FreshPrice,Weight,na.rm = TRUE),weighted.mean(Fish_ConservedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Tokhmemorgh_Price=min(weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Shir_Price=min(weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Mast_Price=min(weighted.mean(Yogurt_PasturizedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Panir_Price=min(weighted.mean(Cheese_PasturizedPrice,Weight,na.rm = TRUE),weighted.mean(Cheese_NonPasturizedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Roghan_Price=min(weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE),weighted.mean(Oil_AnimalPrice,Weight,na.rm = TRUE),weighted.mean(Butter_NonAnimalPrice,Weight,na.rm = TRUE),weighted.mean(Butter_Animal_PasturizedPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Khoshkbar_Price=min(weighted.mean(KeshmeshPrice,Weight,na.rm = TRUE),weighted.mean(TokhmePrice,Weight,na.rm = TRUE),weighted.mean(PistachioPrice,Weight,na.rm = TRUE),weighted.mean(NokhodchiPrice,Weight,na.rm = TRUE),na.rm = TRUE), + Ghand_Price=min(weighted.mean(GhandPrice,Weight,na.rm = TRUE),weighted.mean(ShekarPrice,Weight,na.rm = TRUE),na.rm = TRUE)), + by=.(cluster3,Region)] + + MDP[mapply(is.infinite, MDP)] <- NA + MDP<- MDP %>% mutate(Nan_Price = ifelse(is.na(Nan_Price), mean(Nan_Price, na.rm = T), Nan_Price)) + MDP<- MDP %>% mutate(Berenj_Price = ifelse(is.na(Berenj_Price), mean(Berenj_Price, na.rm = T), Berenj_Price)) + MDP<- MDP %>% mutate(Makarooni_Price = ifelse(is.na(Makarooni_Price), mean(Makarooni_Price, na.rm = T), Makarooni_Price)) + MDP<- MDP %>% mutate(Hoboobat_Price = ifelse(is.na(Hoboobat_Price), mean(Hoboobat_Price, na.rm = T), Hoboobat_Price)) + MDP<- MDP %>% mutate(Sabzi_Price = ifelse(is.na(Sabzi_Price), mean(Sabzi_Price, na.rm = T), Sabzi_Price)) + MDP<- MDP %>% mutate(Sibzamini_Price = ifelse(is.na(Sibzamini_Price), mean(Sibzamini_Price, na.rm = T), Sibzamini_Price)) + MDP<- MDP %>% mutate(Mive_Price = ifelse(is.na(Mive_Price), mean(Mive_Price, na.rm = T), Mive_Price)) + MDP<- MDP %>% mutate(Goosht_Price = ifelse(is.na(Goosht_Price), mean(Goosht_Price, na.rm = T), Goosht_Price)) + MDP<- MDP %>% mutate(Morgh_Price = ifelse(is.na(Morgh_Price), mean(Morgh_Price, na.rm = T), Morgh_Price)) + MDP<- MDP %>% mutate(Mahi_Price = ifelse(is.na(Mahi_Price), mean(Mahi_Price, na.rm = T), Mahi_Price)) + MDP<- MDP %>% mutate(Tokhmemorgh_Price = ifelse(is.na(Tokhmemorgh_Price), mean(Tokhmemorgh_Price, na.rm = T), Tokhmemorgh_Price)) + MDP<- MDP %>% mutate(Shir_Price = ifelse(is.na(Shir_Price), mean(Shir_Price, na.rm = T), Shir_Price)) + MDP<- MDP %>% mutate(Mast_Price = ifelse(is.na(Mast_Price), mean(Mast_Price, na.rm = T), Mast_Price)) + MDP<- MDP %>% mutate(Panir_Price = ifelse(is.na(Panir_Price), mean(Panir_Price, na.rm = T), Panir_Price)) + MDP<- MDP %>% mutate(Roghan_Price = ifelse(is.na(Roghan_Price), mean(Roghan_Price, na.rm = T), Roghan_Price)) + MDP<- MDP %>% mutate(Ghand_Price = ifelse(is.na(Ghand_Price), mean(Ghand_Price, na.rm = T), Ghand_Price)) + MDP<- MDP %>% mutate(Khoshkbar_Price = ifelse(is.na(Khoshkbar_Price), mean(Khoshkbar_Price, na.rm = T), Khoshkbar_Price)) + MDP<-merge(MDP,gram,by=c("Region"),all.x=TRUE) + + MDP<-as.data.table(MDP) + MDP <- MDP[,FPLine:=0.001*((Berenj_Price*Berenj_Grams)+ + (Nan_Price*Nan_Grams)+ + (Makarooni_Price*Makarooni_Grams)+ + (Hoboobat_Price*Hoboobat_Grams)+ + (Sabzi_Price*Sabzi_Grams)+ + (Sibzamini_Price*Sibzamini_Grams)+ + (Mive_Price*Mive_Grams)+ + (Goosht_Price*Goosht_Grams)+ + (Morgh_Price*Morgh_Grams)+ + (Mahi_Price*Mahi_Grams)+ + (Tokhmemorgh_Price*Tokhmemorgh_Grams)+ + (Shir_Price*Shir_Grams)+ + (Mast_Price*Mast_Grams)+ + (Panir_Price*Panir_Grams)+ + (Roghan_Price*Roghan_Grams)+ + (Khoshkbar_Price*Khoshkbar_Grams)+ + (Ghand_Price*Ghand_Grams))] + + MD <- merge(MD,MDP[,.(Region,cluster3,FPLine)],all.x=TRUE,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + #MD[,NewPoor:=ifelse(FoodExpenditure_Per < FPLine,1,0)] + + # print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] + # cat(MD[,weighted.mean(FPLine,Weight)]) + # cat(MD[cluster3==13,weighted.mean(Calory_Price,Weight)]) + #cat(MD[cluster3==1,weighted.mean(TOriginalFoodExpenditure_Per,Weight)]) + x<-MD[,weighted.mean(FPLine,Weight),by="cluster3"] + + + # cat(MD[,weighted.mean(TOriginalFoodExpenditure_Per,Weight)],"\n") + # cat(MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE)],"\n") + # cat(MD[,weighted.mean(Calory_Price,Weight,na.rm = TRUE)],"\n") + # cat(MD[cluster3==1,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") + cat(MD[,weighted.mean(FPLine,Weight*Size,na.rm = TRUE)],"\n") + + + X1 <- MD[,.(Share=weighted.mean(TOriginalFoodExpenditure/FoodExpenditure,Weight))] + X1[,Year:=year] + + OriginalFoodShare <- rbind(OriginalFoodShare,X1) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/166/166- Anstitoo bundle.R b/R/Archive/166/166- Anstitoo bundle.R new file mode 100644 index 00000000..8a73ad97 --- /dev/null +++ b/R/Archive/166/166- Anstitoo bundle.R @@ -0,0 +1,98 @@ +#166-Step 6- FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + + MD<-merge(MD,FoodPrices,all.x=TRUE,by="HHID") + + + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=0.001*30*0.5*(310*weighted.mean(LavashPrice,Weight,na.rm = TRUE)+ + 95*weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE)+ + 20*weighted.mean(MacaroniPrice,Weight,na.rm = TRUE)+ + 26*weighted.mean(AdasPrice,Weight,na.rm = TRUE)+ + 70*weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE)+ + 300*weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE)+ + 280*weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE)+ + 38*weighted.mean(CowMeatPrice,Weight,na.rm = TRUE)+ + 64*weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE)+ + 35*weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE)+ + 250*weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE)+ + 35*weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE)+ + 40*weighted.mean(GhandPrice,Weight,na.rm = TRUE))), + by=.(cluster3,Region)] + MDP[is.na(MDP)] <- 0 + min<-MDP[FPLine>0,min(FPLine)] + MDP[,FPLine:=ifelse(FPLine==0,min,FPLine)] + + MD <- merge(MD,MDP,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + # print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] + # cat(MD[,weighted.mean(FPLine,Weight)]) + # cat(MD[cluster3==13,weighted.mean(Calory_Price,Weight)]) + #cat(MD[cluster3==1,weighted.mean(TOriginalFoodExpenditure_Per,Weight)]) + x<-MD[,weighted.mean(OriginalFoodExpenditure,Weight),by="cluster3"] + + +# cat(MD[,weighted.mean(TOriginalFoodExpenditure_Per,Weight)],"\n") +# cat(MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE)],"\n") +# cat(MD[,weighted.mean(Calory_Price,Weight,na.rm = TRUE)],"\n") + cat(MD[cluster3==1,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/166/166-Step6-FoodBasicNeeds.R b/R/Archive/166/166-Step6-FoodBasicNeeds.R new file mode 100644 index 00000000..4491a42c --- /dev/null +++ b/R/Archive/166/166-Step6-FoodBasicNeeds.R @@ -0,0 +1,92 @@ +#166-Step 6- FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + + #load(file = "CPI.rda") + #CPI<-as.data.table(CPI) + #CPI<-CPI[,Decile:=as.character(Decile)] + #MD<-merge(MD,CPI,by="Decile") + + #Determine Food (Equal 2100 KCal) Bundle + #MDPoors<-MD[InitialPoor==1] + MD[,NewPoor:=InitialPoor] + #MD[,NewPoor:=ifelse(Decile %in% c(1,2,3,4),1,0)] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ +# cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(cluster3,Region)] + MD <- merge(MD,MDP,by=c("Region","cluster3")) +# print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] +# print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] +# cat(MD[,weighted.mean(FPLine,Weight)]) + # cat(MD[cluster3==13,weighted.mean(Calory_Price,Weight)]) + #cat(MD[cluster3==1,weighted.mean(TOriginalFoodExpenditure_Per,Weight)]) + x<-MD[,weighted.mean(OriginalFoodExpenditure,Weight),by="cluster3"] + + +#cat(MD[,weighted.mean(TOriginalFoodExpenditure_Per,Weight)],"\n") +# cat(MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE)],"\n") +# cat(MD[,weighted.mean(Calory_Price,Weight,na.rm = TRUE)],"\n") +# cat(MD[,weighted.mean(EqSizeCalory,Weight,na.rm = TRUE)],"\n") + + cat(MD[cluster3==1,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") + + #cat(MD[FinalFoodPoor==1 & cluster3==7,weighted.mean(Calorie_Need_WorldBank,Weight)],"\n") + #cat(MD[FinalFoodPoor==1 & cluster3==7,weighted.mean(TFoodKCaloriesHH_Per,Weight)],"\n") + #cat(MD[FinalFoodPoor==1 & cluster3==7,weighted.mean(Bundle_Value,Weight)],"\n") +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/166/166-sabad95 - Copy.R b/R/Archive/166/166-sabad95 - Copy.R new file mode 100644 index 00000000..833b024e --- /dev/null +++ b/R/Archive/166/166-sabad95 - Copy.R @@ -0,0 +1,156 @@ +#703-Bundle 2100 +# Builds the Food Groups data.table for households +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(data.table) +library(ggplot2) + +library(data.table) +library(stringr) +library(readxl) +library(spatstat) +library(writexl) +year<-95 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodGrams.rda")) + + MD<-merge(MD,FoodPrices,all.x=TRUE,by="HHID") + MD<-merge(MD,FoodGrams,all.x=TRUE,by="HHID") + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + MetaData <- read_excel(Settings$MetaDataFilePath, Settings$MDS_FoodGroups) + MetaData<-as.data.table(MetaData) + MetaData<-MetaData[,SheetName:=NULL] + FoodNames<-MetaData + save(FoodNames,file ="FoodNames.rda" ) + load(file = "FoodNames.rda") + + # y<-MD[,weighted.mean(FoodKCaloriesHH_Per,Weight),by=c("Region","Decile")] + + + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + load(file=paste0(Settings$HEISProcessedPath,"Gram.rda")) + MD<- merge(MD,gram, by=c("cluster3","Region"),all.x = TRUE) + + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MD[,Selected_Group:=ifelse((Region=="Urban" & Decile==3) | + (Region=="Rural" & Decile==2),1,0)] + MDP <- MD [Selected_Group==1, + .(FPLine=0.001* + (weighted.mean(LavashPrice,Weight,na.rm = TRUE)*mean(Nan_Grams,na.rm = TRUE)+ + weighted.mean(Rice_Khareji2Price,Weight,na.rm = TRUE)*mean(Berenj_Grams)+ + weighted.mean(MacaroniPrice,Weight,na.rm = TRUE)*mean(Makarooni_Grams)+ + weighted.mean(AdasPrice,Weight,na.rm = TRUE)*mean(Hoboobat_Grams)+ + weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE)*mean(Sibzamini_Grams)+ + weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE)*mean(Sabzi_Grams)+ + weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE)*mean(Mive_Grams)+ + weighted.mean(CowMeatPrice,Weight,na.rm = TRUE)*mean(Goosht_Grams)+ + weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE)*mean(Morgh_Grams)+ + weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE)*mean(Tokhmemorgh_Grams)+ + weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE)*mean(Labaniat_Grams)+ + weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE)*mean(Roghan_Grams)+ + weighted.mean(GhandPrice,Weight,na.rm = TRUE)*mean(Ghand_Grams))), + by=.(cluster3,Region)] + MDP<-MDP[,lapply(.SD,sum),by=c("cluster3","Region")] + price<- MD[Selected_Group==1, + .(LavashPrice=weighted.mean(LavashPrice,Weight,na.rm = TRUE), + Rice_Khareji2Price=weighted.mean(Rice_Khareji2Price,Weight,na.rm = TRUE), + MacaroniPrice=weighted.mean(MacaroniPrice,Weight,na.rm = TRUE), + HobubatPrice=weighted.mean(AdasPrice,Weight,na.rm = TRUE), + SibzaminiPrice=weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE), + Sabzi_KhordanPrice=weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE), + Banana_CoconutPrice=weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE), + LivestockGrams=weighted.mean(LivestockGrams,Weight,na.rm = TRUE), + PoultryMeat_MPrice=weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE), + Egg_MashinPrice=weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE), + Milk_PasteurizedPrice=weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE), + Oil_NabatiPrice=weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE), + GhandPrice=weighted.mean(GhandPrice,Weight,na.rm = TRUE)) + ,by=.(cluster3,Region) + ] + + gram <-MD [Selected_Group==1, + .(Nan_Grams= weighted.mean(Nan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Berenj_Grams= weighted.mean(Berenj_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Makarooni_Grams=weighted.mean(Makarooni_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Hoboobat_Grams=weighted.mean(Hoboobat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Sibzamini_Grams=weighted.mean(Sibzamini_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Sabzi_Grams=weighted.mean(Sabzi_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Mive_Grams=weighted.mean(Mive_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Goosht_Grams=weighted.mean(Goosht_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Morgh_Grams=weighted.mean(Morgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Tokhmemorgh_Grams=weighted.mean(Tokhmemorgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Labaniat_Grams=weighted.mean(Labaniat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Roghan_Grams=weighted.mean(Roghan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Ghand_Grams=weighted.mean(Ghand_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)), + by=.(cluster3,Region)] + + MDP[is.na(MDP)] <- 0 + min<-MDP[FPLine>0,min(FPLine)] + MDP[,FPLine:=ifelse(FPLine==0,min,FPLine)] + + MD <- merge(MD,MDP,all.x=TRUE,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + # print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] + # cat(MD[,weighted.mean(FPLine,Weight)]) + # cat(MD[cluster3==13,weighted.mean(Calory_Price,Weight)]) + #cat(MD[cluster3==1,weighted.mean(TOriginalFoodExpenditure_Per,Weight)]) + x<-MD[,weighted.mean(FPLine,Weight),by="cluster3"] + + + # cat(MD[,weighted.mean(TOriginalFoodExpenditure_Per,Weight)],"\n") + # cat(MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE)],"\n") + # cat(MD[,weighted.mean(Calory_Price,Weight,na.rm = TRUE)],"\n") + # cat(MD[cluster3==1,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") + cat(MD[,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") + diff --git a/R/Archive/179.R b/R/Archive/179.R new file mode 100644 index 00000000..afacd381 --- /dev/null +++ b/R/Archive/179.R @@ -0,0 +1,228 @@ +# 133-HHDurableExpenditures.R +# Builds the Durbable Expenditures detailed data.table for households +# +# Copyright © 2017-2020: Arin Shahbazian, Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +startTime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + + +cat("\n\n================ Section13:HHDurable ==============================\n") +DurableTables <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_Durable)) +DurableItems <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_DurableItems)) +year<-96 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- DurableTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Durable_Exp","Durable_Sale")) + TC <- TC[,pcols,with=FALSE] + + # if(year >= 84){ + TC[,Durable_Exp:=as.numeric(Durable_Exp)/12] + TC[,Durable_Sale:=as.numeric(Durable_Sale)/12] + # } + + DurableData_Detail <- merge(TC,DurableItems,by="Code",all = TRUE) + DurableData_Detail <- DurableData_Detail[!is.na(HHID)] + DurableData_Detail[is.na(Durable_Exp), Durable_Exp:=0] + DurableData_Detail[is.na(Durable_Sale), Durable_Sale:=0] + + + #save(DurableData_Detail, file = paste0(Settings$HEISProcessedPath,"Y",year, + # "DurableData_Detail.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + itemslist <- c("cellphone","washer","dishwasher","car", + "oven","tvbw","tvcr","refrigerator","frez_refrig","freezer", + "computer","cooler_gas","cooler_gas_movable") + + for(item in itemslist) + if(!(item %in% names(HHHouseProperties))){ + HHHouseProperties[,(item):=FALSE] + } + + OwnsDurableItems <- HHHouseProperties[,.(HHID, + Cellphone=cellphone*1, + Washer=(washer|dishwasher)*1, + Car_Repair=car*1, + Car_Tire=car*1, + Oven=oven*1, + TV=(tvbw |tvcr)*1, + Refrigrator=(refrigerator|frez_refrig|freezer)*1, + Car=car*1, + Computer=computer*1, + AC=(cooler_gas |cooler_gas_movable)*1, + Car_Motor=car*1)] + + DurableData_Detail96<-copy((DurableData_Detail)) + OwnsDurableItems96<-copy(OwnsDurableItems) + DurableData_Detail96[,Year:=96] + OwnsDurableItems96[,Year:=96] + + #save(OwnsDurableItems,file=paste0(Settings$HEISProcessedPath,"Y",year, + # "OwnsDurableItems.rda")) + + year<-97 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- DurableTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Durable_Exp","Durable_Sale")) + TC <- TC[,pcols,with=FALSE] + + # if(year >= 84){ + TC[,Durable_Exp:=as.numeric(Durable_Exp)/12] + TC[,Durable_Sale:=as.numeric(Durable_Sale)/12] + # } + + DurableData_Detail <- merge(TC,DurableItems,by="Code",all = TRUE) + DurableData_Detail <- DurableData_Detail[!is.na(HHID)] + DurableData_Detail[is.na(Durable_Exp), Durable_Exp:=0] + DurableData_Detail[is.na(Durable_Sale), Durable_Sale:=0] + + + #save(DurableData_Detail, file = paste0(Settings$HEISProcessedPath,"Y",year, + # "DurableData_Detail.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + itemslist <- c("cellphone","washer","dishwasher","car", + "oven","tvbw","tvcr","refrigerator","frez_refrig","freezer", + "computer","cooler_gas","cooler_gas_movable") + + for(item in itemslist) + if(!(item %in% names(HHHouseProperties))){ + HHHouseProperties[,(item):=FALSE] + } + + OwnsDurableItems <- HHHouseProperties[,.(HHID, + Cellphone=cellphone*1, + Washer=(washer|dishwasher)*1, + Car_Repair=car*1, + Car_Tire=car*1, + Oven=oven*1, + TV=(tvbw |tvcr)*1, + Refrigrator=(refrigerator|frez_refrig|freezer)*1, + Car=car*1, + Computer=computer*1, + AC=(cooler_gas |cooler_gas_movable)*1, + Car_Motor=car*1)] + + DurableData_Detail97<-copy((DurableData_Detail)) + OwnsDurableItems97<-copy(OwnsDurableItems) + DurableData_Detail97[,Year:=97] + OwnsDurableItems97[,Year:=97] + #save(OwnsDurableItems,file=paste0(Settings$HEISProcessedPath,"Y",year, + # "OwnsDurableItems.rda")) + + + year<-98 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- DurableTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Durable_Exp","Durable_Sale")) + TC <- TC[,pcols,with=FALSE] + + # if(year >= 84){ + TC[,Durable_Exp:=as.numeric(Durable_Exp)/12] + TC[,Durable_Sale:=as.numeric(Durable_Sale)/12] + # } + + DurableData_Detail <- merge(TC,DurableItems,by="Code",all = TRUE) + DurableData_Detail <- DurableData_Detail[!is.na(HHID)] + DurableData_Detail[is.na(Durable_Exp), Durable_Exp:=0] + DurableData_Detail[is.na(Durable_Sale), Durable_Sale:=0] + + + #save(DurableData_Detail, file = paste0(Settings$HEISProcessedPath,"Y",year, + # "DurableData_Detail.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + itemslist <- c("cellphone","washer","dishwasher","car", + "oven","tvbw","tvcr","refrigerator","frez_refrig","freezer", + "computer","cooler_gas","cooler_gas_movable") + + for(item in itemslist) + if(!(item %in% names(HHHouseProperties))){ + HHHouseProperties[,(item):=FALSE] + } + + OwnsDurableItems <- HHHouseProperties[,.(HHID, + Cellphone=cellphone*1, + Washer=(washer|dishwasher)*1, + Car_Repair=car*1, + Car_Tire=car*1, + Oven=oven*1, + TV=(tvbw |tvcr)*1, + Refrigrator=(refrigerator|frez_refrig|freezer)*1, + Car=car*1, + Computer=computer*1, + AC=(cooler_gas |cooler_gas_movable)*1, + Car_Motor=car*1)] + + DurableData_Detail98<-copy((DurableData_Detail)) + OwnsDurableItems98<-copy(OwnsDurableItems) + + DurableData_Detail98[,Year:=98] + OwnsDurableItems98[,Year:=98] + #save(OwnsDurableItems,file=paste0(Settings$HEISProcessedPath,"Y",year, + # "OwnsDurableItems.rda")) + + + DurableData_Detail<-rbind(DurableData_Detail98,DurableData_Detail97) + DurableData_Detail<-rbind(DurableData_Detail,DurableData_Detail96) + + OwnsDurableItems<-rbind(OwnsDurableItems98,OwnsDurableItems97) + OwnsDurableItems<-rbind(OwnsDurableItems,OwnsDurableItems96) + + save(DurableData_Detail, file = paste0(Settings$HEISProcessedPath,"Y",year,"DurableData_Detail_Ostan.rda")) + save(OwnsDurableItems,file=paste0(Settings$HEISProcessedPath,"Y",year,"OwnsDurableItems_Ostan.rda")) + + +endTime <- proc.time() +cat("\n\n=========================\nIt took",(endTime-startTime)[3], "seconds.") diff --git a/R/Archive/181.R b/R/Archive/181.R new file mode 100644 index 00000000..6bf9305b --- /dev/null +++ b/R/Archive/181.R @@ -0,0 +1,237 @@ +#161-Step1-MergeData.R +# +# Copyright © 2018-2020: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +year<-96 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodNutritionData.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodExpData.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + load(file="Inflation9098.rda") + + for(G in c("Cigars","Cloths","Amusements","Communications", + "Educations", "Furnitures","Hotels","Energys","House", "Medicals", + "Hygienes","Transportations","Others", "Restaurants", + "Durable_4Groups","OwnedDurableItemsDepreciation")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + + FoodNutritionData <- FoodNutritionData[FoodKCaloriesHH>0] + + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodNutritionData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodExpData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelData,by =c("HHID"),all=TRUE) + MD<-merge(MD,RestaurantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HygieneData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,Durable_4Groups,by =c("HHID"),all=TRUE) + MD<-merge(MD,OwnedDurableItemsDepreciation,by =c("HHID"),all=TRUE) + MD<-merge(MD,Inflation9098,by="ProvinceCode") + + MD[,FoodExpenditure:=FoodExpenditure*y9697*y9798] + MD[,OriginalFoodExpenditure:=OriginalFoodExpenditure*y9697*y9798] + MD[,FoodOtherExpenditure:=FoodOtherExpenditure*y9697*y9798] + MD[,Cigar_Exp:=Cigar_Exp*y9697*y9798] + MD[,Cloth_Exp:=Cloth_Exp*y9697*y9798] + MD[,Amusement_Exp:=Amusement_Exp*y9697*y9798] + MD[,Communication_Exp:=Communication_Exp*y9697*y9798] + MD[,Education_Exp:=Education_Exp*y9697*y9798] + MD[,Energy_Exp:=Energy_Exp*y9697*y9798] + MD[,House_Exp:=House_Exp*y9697*y9798] + MD[,MeterPrice:=MeterPrice*y9697*y9798] + MD[,Furniture_Exp:=Furniture_Exp*y9697*y9798] + MD[,Hotel_Exp:=Hotel_Exp*y9697*y9798] + MD[,Restaurant_Exp:=Restaurant_Exp*y9697*y9798] + MD[,Hygiene_Exp:=Hygiene_Exp*y9697*y9798] + MD[,Transportation_Exp:=Transportation_Exp*y9697*y9798] + MD[,Other_Exp:=Other_Exp*y9697*y9798] + MD[,Medical_Exp:=Medical_Exp*y9697*y9798] + MD[,Add_to_NonDurable:=Add_to_NonDurable*y9697*y9798] + MD[,Durable_Dep:=Durable_Dep*y9697*y9798] + MD[,Durable_NoDep:=Durable_NoDep*y9697*y9798] + MD[,Durable_Emergency:=Durable_Emergency*y9697*y9798] + MD[,OwnedDurableItemsDepreciation:=OwnedDurableItemsDepreciation*y9697*y9798] + + #Calculate Monthly Total Expenditures + for (col in Settings$w) + MD[is.na(get(col)), (col) := 0] + + MD[,Total_Exp_Month := Reduce(`+`, .SD), .SDcols=Settings$w] + MD[,Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=Settings$nw] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + MD96<-copy(MD) + +############################################################ + ######################################################## + ######################################################## + + year<-97 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodNutritionData.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodExpData.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + load(file="Inflation9098.rda") + + for(G in c("Cigars","Cloths","Amusements","Communications", + "Educations", "Furnitures","Hotels","Energys","House", "Medicals", + "Hygienes","Transportations","Others", "Restaurants", + "Durable_4Groups","OwnedDurableItemsDepreciation")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + + FoodNutritionData <- FoodNutritionData[FoodKCaloriesHH>0] + + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodNutritionData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodExpData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelData,by =c("HHID"),all=TRUE) + MD<-merge(MD,RestaurantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HygieneData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,Durable_4Groups,by =c("HHID"),all=TRUE) + MD<-merge(MD,OwnedDurableItemsDepreciation,by =c("HHID"),all=TRUE) + MD<-merge(MD,Inflation9098,by="ProvinceCode") + + MD[,FoodExpenditure:=FoodExpenditure*y9798] + MD[,OriginalFoodExpenditure:=OriginalFoodExpenditure*y9798] + MD[,FoodOtherExpenditure:=FoodOtherExpenditure*y9798] + MD[,Cigar_Exp:=Cigar_Exp*y9798] + MD[,Cloth_Exp:=Cloth_Exp*y9798] + MD[,Amusement_Exp:=Amusement_Exp*y9798] + MD[,Communication_Exp:=Communication_Exp*y9798] + MD[,Education_Exp:=Education_Exp*y9798] + MD[,Energy_Exp:=Energy_Exp*y9798] + MD[,House_Exp:=House_Exp*y9798] + MD[,MeterPrice:=MeterPrice*y9798] + MD[,Furniture_Exp:=Furniture_Exp*y9798] + MD[,Hotel_Exp:=Hotel_Exp*y9798] + MD[,Restaurant_Exp:=Restaurant_Exp*y9798] + MD[,Hygiene_Exp:=Hygiene_Exp*y9798] + MD[,Transportation_Exp:=Transportation_Exp*y9798] + MD[,Other_Exp:=Other_Exp*y9798] + MD[,Medical_Exp:=Medical_Exp*y9798] + MD[,Add_to_NonDurable:=Add_to_NonDurable*y9798] + MD[,Durable_Dep:=Durable_Dep*y9798] + MD[,Durable_NoDep:=Durable_NoDep*y9798] + MD[,Durable_Emergency:=Durable_Emergency*y9798] + MD[,OwnedDurableItemsDepreciation:=OwnedDurableItemsDepreciation*y9798] + + #Calculate Monthly Total Expenditures + for (col in Settings$w) + MD[is.na(get(col)), (col) := 0] + + MD[,Total_Exp_Month := Reduce(`+`, .SD), .SDcols=Settings$w] + MD[,Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=Settings$nw] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + MD97<-copy(MD) + + ############################################################ + ######################################################## + ######################################################## + + year<-98 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodNutritionData.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodExpData.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + load(file="Inflation9098.rda") + + for(G in c("Cigars","Cloths","Amusements","Communications", + "Educations", "Furnitures","Hotels","Energys","House", "Medicals", + "Hygienes","Transportations","Others", "Restaurants", + "Durable_4Groups","OwnedDurableItemsDepreciation")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + + FoodNutritionData <- FoodNutritionData[FoodKCaloriesHH>0] + + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodNutritionData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodExpData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelData,by =c("HHID"),all=TRUE) + MD<-merge(MD,RestaurantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HygieneData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,Durable_4Groups,by =c("HHID"),all=TRUE) + MD<-merge(MD,OwnedDurableItemsDepreciation,by =c("HHID"),all=TRUE) + MD<-merge(MD,Inflation9098,by="ProvinceCode") + + + #Calculate Monthly Total Expenditures + for (col in Settings$w) + MD[is.na(get(col)), (col) := 0] + + MD[,Total_Exp_Month := Reduce(`+`, .SD), .SDcols=Settings$w] + MD[,Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=Settings$nw] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + MD98<-copy(MD) + + ##################################################### + rm(MD) + + MD<-rbind(MD96,MD97) + MD<-rbind(MD,MD98) + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBNOstan.rda")) + + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)[3],"seconds.") diff --git a/R/Archive/182.R b/R/Archive/182.R new file mode 100644 index 00000000..840f4cde --- /dev/null +++ b/R/Archive/182.R @@ -0,0 +1,36 @@ +#162- Step 2.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n============== Calculationg Calorie Equal size ===================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + + +year<-98 + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBNOstan.rda")) + + MD<-MD[Size!=0 & OriginalFoodExpenditure!=0 & !is.na(FoodKCaloriesHH)] + + MD[,EqSizeCalory:=Calorie_Need_WorldBank/ + Settings$KCaloryNeed_Adult_WorldBank] + MD[,EqSizeCalory2:=Calorie_Need_NutritionInstitute/ + Settings$KCaloryNeed_Adult_NutritionInstitute] + MD[,EqSizeCalory3 :=(Size-NKids) + + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN2Ostan.rda")) + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/183.R b/R/Archive/183.R new file mode 100644 index 00000000..5cd9f90c --- /dev/null +++ b/R/Archive/183.R @@ -0,0 +1,45 @@ +#163- Step 3.R +# +# Copyright © 2018-2020: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() + + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(spatstat) + +year<-98 + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN2Ostan.rda")) + + + MD[,FoodExpenditure_Per :=FoodExpenditure/EqSizeCalory] + MD[,OriginalFoodExpenditure_Per :=OriginalFoodExpenditure/EqSizeCalory] + MD[,FoodKCaloriesHH_Per:=FoodKCaloriesHH/EqSizeCalory] + MD[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] + + #Calculate per_Calory from Restaurants + MD[,Calory_Price:=(OriginalFoodExpenditure_Per/FoodKCaloriesHH_Per)] + MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)] + MD[,RestaurantKCalories:=(Settings$OutFoodKCXShare*Restaurant_Exp)/Calory_Price_Area] + MD[is.na(RestaurantKCalories),RestaurantKCalories:=0] + + MD[,TFoodKCaloriesHH:=FoodKCaloriesHH+RestaurantKCalories] + MD[,TOriginalFoodExpenditure:=OriginalFoodExpenditure+Restaurant_Exp] + + MD[,TOriginalFoodExpenditure_Per :=TOriginalFoodExpenditure/EqSizeCalory] + MD[,TFoodKCaloriesHH_Per:=TFoodKCaloriesHH/EqSizeCalory] + + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3Ostan.rda")) + + +endtime <- proc.time() +cat("\n\n============================\nIt took ",(endtime-starttime)[3],"seconds.") \ No newline at end of file diff --git a/R/Archive/184.R b/R/Archive/184.R new file mode 100644 index 00000000..87ca113a --- /dev/null +++ b/R/Archive/184.R @@ -0,0 +1,43 @@ +#164-Step 4-FindInitialPoor.R +# +# Copyright © 2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +#library(ggplot2) +#library(compare) + +year<-96 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +Decile96<-MD[,.(HHID,Decile,Percentile,Year)] + +year<-97 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +Decile97<-MD[,.(HHID,Decile,Percentile,Year)] + +year<-98 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +Decile98<-MD[,.(HHID,Decile,Percentile,Year)] + +Decile<-rbind(Decile96,Decile97) +Decile<-rbind(Decile,Decile98) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3Ostan.rda")) +MD<-merge(MD,Decile,by=c("HHID","Year")) + +save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorOstan.rda")) + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/186.R b/R/Archive/186.R new file mode 100644 index 00000000..d83f89f6 --- /dev/null +++ b/R/Archive/186.R @@ -0,0 +1,90 @@ +# 166-Step6-FoodPoor.R: Calculate base year basket cost in current year prices +# for each cluster. and find FoodPoor +# +# Copyright © 2019-2020: Arin Shahbazian & Majid Einian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(data.table) +library(spatstat) + +year<-98 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorOstan.rda")) + +year<-98 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) +BigFData98<-copy(BigFData) +BigFData98[,Year:=96] + +year<-97 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) +BigFData97<-copy(BigFData) +BigFData97[,Year:=97] + +year<-96 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) +BigFData96<-copy(BigFData) +BigFData96[,Year:=98] + +BigFData<-rbind(BigFData98,BigFData97) +BigFData<-rbind(BigFData,BigFData96) + + + +MD[,Selected_Group:=ifelse((Region=="Urban" & (Decile==4)) | + (Region=="Rural" & (Decile==3)),1,0)] + +Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) +Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) +Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size, + EqSizeCalory,Selected_Group)],by=c("HHID",Year)) +Bfd2[is.na(Bfd2)]<-0 +Bfd2[Price<0.1,Price:=NA] + +BaseYearBasket <- Bfd2[Selected_Group==1, + .(FGramspc=weighted.mean(FGrams/EqSizeCalory,Weight*Size), + FKCalspc=weighted.mean(FoodKCalories/EqSizeCalory,Weight*Size)), + by=.(FoodType,Region)] +BaseYearBasket[,BasketCals:=sum(FKCalspc),by=Region] +BaseYearBasket[,StandardFGramspc:=FGramspc*Settings$KCaloryNeed_Adult_WorldBank/BasketCals] + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + + MD[,Selected_Group:=ifelse((Decile==5) | (Decile==2) | + (Decile==3) | (Decile==4),1,0)] + + Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) + Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) + Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size,NewArea_Name, + EqSizeCalory,Selected_Group)],by="HHID") + Bfd2[is.na(Bfd2)]<-0 + Bfd2[Price<0.1,Price:=NA] + # Basket <- Bfd2[Selected_Group==1, + # .(FGramspc=weighted.mean(FGrams/EqSizeCalory,Weight*Size)), + # by=.(FoodType,NewArea_Name)] + + BasketPrice <- Bfd2[Selected_Group==1 & !is.na(Price), + .(Price=weighted.median(Price,Weight*Size,na.rm = TRUE)), + by=.(FoodType,Region,NewArea_Name)] + + BasketCost <- merge(BaseYearBasket,BasketPrice,by=c("FoodType","Region")) + BasketCost[,Cost:=(StandardFGramspc/1000)*Price] + FPLineBasket <- BasketCost[,.(FPLine=sum(Cost)),by=c("Region","NewArea_Name")] + + MD <- merge(MD,FPLineBasket,all.x=TRUE,by=c("Region","NewArea_Name")) + + MD[,FoodPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor2.rda")) + + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"]," seconds") \ No newline at end of file diff --git a/R/Archive/188.R b/R/Archive/188.R new file mode 100644 index 00000000..d1adf5d2 --- /dev/null +++ b/R/Archive/188.R @@ -0,0 +1,140 @@ +# 168-Step8-PovertyStats.R +# +# Copyright © 2018-2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(writexl) +library(ggplot2) + + +year<-98 + cat(paste0("\nYear:",year,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"BigEngelTable.rda")) + MD <- merge(MD,BigEngelTable[Year==year, + .(cluster3,Region, + PovertyLine,PovertyLine0, + Engel,ModifiedEngel)], + by=c("Region","cluster3")) + MD98<-copy(MD) + + year<-97 + cat(paste0("\nYear:",year,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"BigEngelTable.rda")) + MD <- merge(MD,BigEngelTable[Year==year, + .(cluster3,Region, + PovertyLine,PovertyLine0, + Engel,ModifiedEngel)], + by=c("Region","cluster3")) + MD97<-copy(MD) + + year<-96 + cat(paste0("\nYear:",year,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"BigEngelTable.rda")) + MD <- merge(MD,BigEngelTable[Year==year, + .(cluster3,Region, + PovertyLine,PovertyLine0, + Engel,ModifiedEngel)], + by=c("Region","cluster3")) + MD96<-copy(MD) + + MD<-rbind(MD98,MD97) + MD<-rbind(MD,MD96) + + load(file="Inflation9098.rda") + MD<-merge(MD,Inflation9098,by="ProvinceCode") + MD[,FPLine:=ifelse(Year==96,FPLine*y9697*y9798, + ifelse(Year==97,FPLine*y9798,FPLine))] + MD[,Total_Exp_Month_Per:=ifelse(Year==96,Total_Exp_Month_Per*y9697*y9798, + ifelse(Year==97,Total_Exp_Month_Per*y9798,Total_Exp_Month_Per))] + MD[,Total_Exp_Month_Per_nondurable:=ifelse(Year==96,Total_Exp_Month_Per_nondurable*y9697*y9798, + ifelse(Year==97,Total_Exp_Month_Per_nondurable*y9798,Total_Exp_Month_Per_nondurable))] + + #MD[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight),by=Year] + MD[,PovertyLine:=FPLine/ModifiedEngel] + MD[,PovertyLine0:=FPLine/Engel] + + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine,1,0 )] + MD[,FinalPoor0:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine0,1,0 )] + + A2<-MD[,.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")] + + A2<-A2[,.(PovertyLine,ProvinceName,N)] + A2$ProvinceName <- factor(A2$ProvinceName, levels = A2$ProvinceName[order(A2$PovertyLine)]) + ggplot(A2, aes(x = A2$ProvinceName, y = A2$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 16000000) + + A4<-MD[,.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("Region","ProvinceName")] + + A4<-A4[Region=="Urban",.(PovertyLine,ProvinceName,N)] + A4$ProvinceName <- factor(A4$ProvinceName, levels = A4$ProvinceName[order(A4$PovertyLine)]) + ggplot(A4, aes(x = A4$ProvinceName, y = A4$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 18000000) + + + A4<-MD[,.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("Region","ProvinceName")] + + A4<-A4[Region=="Rural",.(PovertyLine,ProvinceName,N)] + A4$ProvinceName <- factor(A4$ProvinceName, levels = A4$ProvinceName[order(A4$PovertyLine)]) + ggplot(A4, aes(x = A4$ProvinceName, y = A4$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 8000000) + + ############################################################### + ############################################################## + ############################################################### + + A2<-MD[,.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")] + + A2<-A2[,.(HCR,ProvinceName,N)] + A2$ProvinceName <- factor(A2$ProvinceName, levels = A2$ProvinceName[order(A2$HCR)]) + ggplot(A2, aes(x = A2$ProvinceName, y = A2$HCR)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 0.5)#+ + # scale_y_continuous(breaks = c(0,0.1,0.2,0.3,0.4,0.5)) + + A4<-MD[,.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("Region","ProvinceName")] + + A4<-A4[Region=="Urban",.(HCR,ProvinceName,N)] + A4$ProvinceName <- factor(A4$ProvinceName, levels = A4$ProvinceName[order(A4$HCR)]) + ggplot(A4, aes(x = A4$ProvinceName, y = A4$HCR)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 0.5) + + + A4<-MD[,.(.N,PovertyLine=weighted.mean(PovertyLine,Weight), + HCR=weighted.mean(FinalPoor,Weight)),by=c("Region","ProvinceName")] + + A4<-A4[Region=="Rural",.(HCR,ProvinceName,N)] + A4$ProvinceName <- factor(A4$ProvinceName, levels = A4$ProvinceName[order(A4$HCR)]) + ggplot(A4, aes(x = A4$ProvinceName, y = A4$HCR)) + theme_bw() + geom_bar(stat = "identity") + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1))+ + geom_text(aes(label=N),angle=90,vjust=0, hjust=-0.03) + ylim(0, 0.5) + + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") \ No newline at end of file diff --git a/R/Archive/20.1-InvestigateWeightsOfFoods.R b/R/Archive/20.1-InvestigateWeightsOfFoods.R new file mode 100644 index 00000000..fed49fe4 --- /dev/null +++ b/R/Archive/20.1-InvestigateWeightsOfFoods.R @@ -0,0 +1,66 @@ + +# Copyright © 2016: Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n===========================================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(readxl) + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Food)) + + +for(year in (Settings$startyear:Settings$endyear)) +{ + ty <- FoodTables[Year==year] + if(!is.na(ty$Grams)) + { + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + + tab <- ty$Table + + UTL <- Tables[[paste0("U",year,tab)]] + RTL <- Tables[[paste0("R",year,tab)]] + TL <- rbind(UTL,RTL) + + for(n in names(TL)){ + x <- which(ty==n) + if(length(x)>0) + setnames(TL,n,names(ty)[x]) + } + + + TL[,Kilos:=as.numeric(Kilos)] + TL[,Grams:=as.numeric(Grams)] + TL[,Price:=as.numeric(Price)] + TL[,Expenditure:=as.numeric(Expenditure)] + + TL[,GW:=Kilos+Grams/1000] + TL[,GWxP:=GW*Price] + TL[,GWxP_EX:=GWxP/Expenditure] + TL2 <- TL[!is.na(GWxP)] + cat(paste(year, + max(TL$Grams,na.rm = TRUE), + nrow(TL2),nrow(TL[is.na(GWxP)]), + nrow(TL2[GWxP==Expenditure]), + nrow(TL2[GWxP!=Expenditure]), + mean(TL2$GWxP_EX,na.rm = TRUE), + TL2[GWxP!=Expenditure,.(mean(GWxP_EX))], + TL2[GWxP!=Expenditure,.(min(GWxP_EX))], + TL2[GWxP!=Expenditure,.(max(GWxP_EX))] + ,"\n")) + } + +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/26-InfantExp.R b/R/Archive/26-InfantExp.R new file mode 100644 index 00000000..5291836c --- /dev/null +++ b/R/Archive/26-InfantExp.R @@ -0,0 +1,188 @@ +rm(list=ls()) + +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +year <- 95 + +load(paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +load(paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) +load(paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + +S01 <- rbind(Tables$R95P3S01,Tables$U95P3S01) +setnames(S01, c("HHID","Code","BuyingMethod","Grams","Kilos","Price","Expenditure")) +S03 <- rbind(Tables$R95P3S03,Tables$U95P3S03) +setnames(S03, c("HHID","Code","BuyingMethod","Expenditure")) +S05 <- rbind(Tables$R95P3S05,Tables$U95P3S05) +setnames(S05, c("HHID","Code","BuyingMethod","Expenditure")) +S09 <- rbind(Tables$R95P3S09,Tables$U95P3S09) +setnames(S09, c("HHID","Code","BuyingMethod","Expenditure")) +S12 <- rbind(Tables$R95P3S12,Tables$U95P3S12) +setnames(S12, c("HHID","Code","BuyingMethod","Expenditure")) +S13 <- rbind(Tables$R95P3S13,Tables$U95P3S13) +setnames(S13, c("HHID","Code","I1","I2","BuyingMethod","Expenditure","SellValue")) +S13 <- S13[,Expenditure:=as.integer(Expenditure)] + +rm(Tables) + +Q1T <- S01[Code==11413][,.(X1=sum(Expenditure)*12),by="HHID"] +Q2T <- S01[Code==11936][,.(X2=sum(Expenditure)*12),by="HHID"] +Q3T1 <- S03[Code %in% 31271:31279][,.(X31=sum(Expenditure)*12),by="HHID"] +Q3T2 <- S03[Code %in% 32141][,.(X32=sum(Expenditure)*12),by="HHID"] +#Q3T3 <- S03[Code %in% c(31251:31269,31416)][,.(X33=sum(Expenditure)*12),by="HHID"] +#Q3T4 <- S03[Code %in% 32131:32134][,.(X34=sum(Expenditure)*12),by="HHID"] +Q4T <- S05[Code==54034][,.(X4=sum(Expenditure)*12),by="HHID"] +Q5T <- S12[Code==121353][,.(X5=sum(Expenditure)*12),by="HHID"] +Q6T <- S12[Code==123215][,.(X6=sum(Expenditure)*12),by="HHID"] +Q7T <- S09[Code %in% 93111:93117][,.(X7=sum(Expenditure)*12),by="HHID"] +Q7TA <- S13[Code %in% 93118:93129][,.(X7A=sum(Expenditure)),by="HHID"] +Q8T1A <- S13[Code %in% 101111:101115][,.(X81A=sum(Expenditure)),by="HHID"] +Q8T2A <- S13[Code %in% 102111:102114][,.(X82A=sum(Expenditure)),by="HHID"] +Q8T3A <- S13[Code %in% 102211:102215][,.(X83A=sum(Expenditure)),by="HHID"] +Q8T4A <- S13[Code %in% 103111:103116][,.(X84A=sum(Expenditure)),by="HHID"] +Q9TA <- S13[Code %in% 124113][,.(X9A=sum(Expenditure)),by="HHID"] + + +D <- merge(HHBase, Q1T, by="HHID", all.x = TRUE) +D <- merge(D, Q2T, by="HHID", all.x = TRUE) +D <- merge(D, Q3T1, by="HHID", all.x = TRUE) +D <- merge(D, Q3T2, by="HHID", all.x = TRUE) +D <- merge(D, Q3T3, by="HHID", all.x = TRUE) +D <- merge(D, Q3T4, by="HHID", all.x = TRUE) +D <- merge(D, Q4T, by="HHID", all.x = TRUE) +D <- merge(D, Q5T, by="HHID", all.x = TRUE) +D <- merge(D, Q6T, by="HHID", all.x = TRUE) +D <- merge(D, Q7T, by="HHID", all.x = TRUE) +D <- merge(D, Q7TA, by="HHID", all.x = TRUE) +D <- merge(D, Q8T1A, by="HHID", all.x = TRUE) +D <- merge(D, Q8T2A, by="HHID", all.x = TRUE) +D <- merge(D, Q8T3A, by="HHID", all.x = TRUE) +D <- merge(D, Q8T4A, by="HHID", all.x = TRUE) +D <- merge(D, Q9TA, by="HHID", all.x = TRUE) + +D[is.na(D)]<-0 + +D <- merge(HHI,D,by="HHID") + +load(paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + +HHWeights[,Year:=NULL] + +D <- merge(D, HHWeights, by="HHID") + +summary(D$X1) +D[,X3:=X31+X32] +Di <- D[NInfants>0] + +library(ggplot2) + +SW <- sum(Di$Weight) + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X1)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X1),Region)] +Di[,weighted.mean(X1,Weight),by=sign(X1)] +Di[,weighted.mean(X1,Weight),by=.(sign(X1),Region)] +ggplot(Di[X1>0],aes(X1/1e7, weight=Weight)) + geom_histogram() + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X2)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X2),Region)] +Di[,weighted.mean(X2,Weight),by=sign(X2)] +Di[,weighted.mean(X2,Weight),by=.(sign(X2),Region)] +ggplot(Di[X2>0],aes(X2/1e7, weight=Weight)) + geom_histogram() + + + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X3)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X3),Region)] +Di[,weighted.mean(X3,Weight),by=sign(X3)] +Di[,weighted.mean(X3,Weight),by=.(sign(X3),Region)] +ggplot(Di[X3>0],aes(X3/1e7, weight=Weight)) + geom_histogram() +Di[,weighted.mean(X3,Weight)] +Di[,weighted.mean(X3,Weight),by=.(Region)] + + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X4)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X4),Region)] +Di[,weighted.mean(X4,Weight),by=sign(X4)] +Di[,weighted.mean(X4,Weight),by=.(sign(X4),Region)] +ggplot(Di[X4>0],aes(X4/1e7, weight=Weight)) + geom_histogram() +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X1+X4)] +Di[,.(sum(Weight),sum(Weight)/323818.9),by=.(sign(X1),sign(X4))] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X1+X4),Region)] +Di[,weighted.mean(X4,Weight),by=sign(X1+X4)] +Di[,weighted.mean(X4,Weight),by=.(sign(X1+X4),Region)] + + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X5)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X5),Region)] +Di[,weighted.mean(X5,Weight),by=sign(X5)] +Di[,weighted.mean(X5,Weight),by=.(sign(X5),Region)] +ggplot(Di[X5>0],aes(X5/1e7, weight=Weight)) + geom_histogram() + + +Di[,.(.N, sum(Weight),sum(Weight)/SW),by=sign(X6)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X6),Region)] +Di[,weighted.mean(X6,Weight),by=sign(X6)] +Di[,weighted.mean(X6,Weight),by=.(sign(X6),Region)] +ggplot(Di[X6>0],aes(X6/1e7, weight=Weight)) + geom_histogram() +Di[,.(sum(Weight),sum(Weight)/SW*12),by=sign(X6)] +Di[,weighted.mean(X6,Weight)/12,by=sign(X6)] +Di[,weighted.mean(X6,Weight)/12,by=.(sign(X6),sign(X6-1e8))] +ggplot(Di[X6>0],aes(X6/12e7, weight=Weight*12)) + geom_histogram() + + +Di[,X7T:=X7+X7A] + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X7)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X7),Region)] +Di[,weighted.mean(X7,Weight),by=sign(X7)] +Di[,weighted.mean(X7,Weight),by=.(sign(X7),Region)] +ggplot(Di[X7>0],aes(X7/1e7, weight=Weight)) + geom_histogram() + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X7A)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X7A),Region)] +Di[,weighted.mean(X7A,Weight),by=sign(X7A)] +Di[,weighted.mean(X7A,Weight),by=.(sign(X7A),Region)] +ggplot(Di[X7A>0],aes(X7A/1e7, weight=Weight)) + geom_histogram() + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X7T)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X7T),Region)] +Di[,weighted.mean(X7T,Weight),by=sign(X7T)] +Di[,weighted.mean(X7T,Weight),by=.(sign(X7T),Region)] +ggplot(Di[X7T>0],aes(X7T/1e7, weight=Weight)) + geom_histogram() + + +Di[,.(sum(Weight),sum(Weight)/SW),by=sign(X9A)] +Di[,.(sum(Weight),sum(Weight)/SW),by=.(sign(X9A),Region)] +Di[,weighted.mean(X9A,Weight),by=sign(X9A)] +Di[,weighted.mean(X9A,Weight),by=.(sign(X9A),Region)] +ggplot(Di[X9A>0],aes(X9A/1e7, weight=Weight)) + geom_histogram() + + +# library(questionr) +# +# wtd.table(D$NInfants, D$NSmallKids,weights = D$Weight) +# +# library(XLConnect) +# +# writeWorksheetToFile(file = "D:/InfantExp.xlsx", data = +# D[,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45)] +# ,sheet = "All") +# writeWorksheetToFile(file = "D:/InfantExp.xlsx", data = +# D[,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45),by=NInfants] +# ,sheet = "NInfants") +# writeWorksheetToFile(file = "D:/InfantExp.xlsx", data = +# D[,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45),by=NSmallKids] +# ,sheet = "NSmallKids") +# writeWorksheetToFile(file = "D:/InfantExp.xlsx", data = +# D[,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45),by=.(NInfants,NSmallKids)] +# ,sheet = "Both") +# +# +# D[NInfants>0,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45)] +# D[NInfants>0,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45)] +# +# D[X9A>0,lapply(.SD,weighted.mean,Weight),.SDcols=c(45),by=.(NInfants,NSmallKids)] diff --git a/R/Archive/27.1-Amusement-TS.R b/R/Archive/27.1-Amusement-TS.R new file mode 100644 index 00000000..5c59d747 --- /dev/null +++ b/R/Archive/27.1-Amusement-TS.R @@ -0,0 +1,76 @@ +# 27-Amusement-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Amusement =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Amusement_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Amusements.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Amusements.rda")) + + D <- merge(HHBase,AmusementData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Amusement_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Amusement_Exp),Amusement_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Amusement.Q <- BigD[,.(SM=sum(Amusement_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Amusement.Y <- BigD[,.(SM=sum(Amusement_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Amusement.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Amusement.Q") + +writeWorksheetToFile(data = Amusement.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Amusement.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Cigar-TS.R b/R/Archive/27.1-Cigar-TS.R new file mode 100644 index 00000000..6d255233 --- /dev/null +++ b/R/Archive/27.1-Cigar-TS.R @@ -0,0 +1,76 @@ +# 27-Cigar-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Cigar =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Cigar_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Cigars.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Cigars.rda")) + + D <- merge(HHBase,CigarData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Cigar_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Cigar_Exp),Cigar_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Cigar.Q <- BigD[,.(SM=sum(Cigar_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Cigar.Y <- BigD[,.(SM=sum(Cigar_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Cigar.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Cigar.Q") + +writeWorksheetToFile(data = Cigar.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Cigar.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Cloth-TS.R b/R/Archive/27.1-Cloth-TS.R new file mode 100644 index 00000000..3b0a4351 --- /dev/null +++ b/R/Archive/27.1-Cloth-TS.R @@ -0,0 +1,76 @@ +# 27-Cloth-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Cloth =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Cloth_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Medicals.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Cloths.rda")) + + D <- merge(HHBase,ClothData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Cloth_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Cloth_Exp),Cloth_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Cloth.Q <- BigD[,.(SM=sum(Cloth_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Cloth.Y <- BigD[,.(SM=sum(Cloth_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Cloth.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Cloths.Q") + +writeWorksheetToFile(data = Cloth.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Cloths.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Communication-TS.R b/R/Archive/27.1-Communication-TS.R new file mode 100644 index 00000000..c2d8188e --- /dev/null +++ b/R/Archive/27.1-Communication-TS.R @@ -0,0 +1,76 @@ +# 27-Communication-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Communication =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Communication_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Communications.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Communications.rda")) + + D <- merge(HHBase,CommunicationData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Communication_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Communication_Exp),Communication_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Communication.Q <- BigD[,.(SM=sum(Communication_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Communication.Y <- BigD[,.(SM=sum(Communication_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Communication.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Communication.Q") + +writeWorksheetToFile(data = Communication.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Communication.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Durable-TS.R b/R/Archive/27.1-Durable-TS.R new file mode 100644 index 00000000..90b49b72 --- /dev/null +++ b/R/Archive/27.1-Durable-TS.R @@ -0,0 +1,76 @@ +# 27-Durable-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Durable =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Durable_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Durables.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Durables.rda")) + + D <- merge(HHBase,DurableData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Durable_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Durable_Exp),Durable_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +#Durable.Q <- BigD[,.(SM=sum(Durable_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Durable.Y <- BigD[,.(SM=sum(Durable_Exp*Weight, na.rm = TRUE)),by=Year] + + +#writeWorksheetToFile(data = Durable.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Durable.Q") + +writeWorksheetToFile(data = Durable.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Durable.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Education-TS.R b/R/Archive/27.1-Education-TS.R new file mode 100644 index 00000000..3cc749b9 --- /dev/null +++ b/R/Archive/27.1-Education-TS.R @@ -0,0 +1,76 @@ +# 27-Education-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Education =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + EducExpenditure = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Education.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Education.rda")) + + D <- merge(HHBase,EducData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, EducExpenditure, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(EducExpenditure),EducExpenditure:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +E.Q <- BigD[,.(SE=sum(EducExpenditure*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +E.Y <- BigD[,.(SE=sum(EducExpenditure*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = E.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Education.Q") + +writeWorksheetToFile(data = E.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Education.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Energy-TS.R b/R/Archive/27.1-Energy-TS.R new file mode 100644 index 00000000..ea8da7af --- /dev/null +++ b/R/Archive/27.1-Energy-TS.R @@ -0,0 +1,76 @@ +# 27-Energy-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Energy =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Energy_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Energy.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Energy.rda")) + + D <- merge(HHBase,EnergyData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Energy_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Energy_Exp),Energy_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Energy.Q <- BigD[,.(SM=sum(Energy_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Energy.Y <- BigD[,.(SM=sum(Energy_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Energy.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Energy.Q") + +writeWorksheetToFile(data = Energy.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Energy.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Furniture-TS.R b/R/Archive/27.1-Furniture-TS.R new file mode 100644 index 00000000..8b5a5344 --- /dev/null +++ b/R/Archive/27.1-Furniture-TS.R @@ -0,0 +1,76 @@ +# 27-Furniture-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Furniture =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Furniture_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Furnitures.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Furnitures.rda")) + + D <- merge(HHBase,FurnitureData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Furniture_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Furniture_Exp),Furniture_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Furniture.Q <- BigD[,.(SM=sum(Furniture_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Furniture.Y <- BigD[,.(SM=sum(Furniture_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Furniture.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Furniture.Q") + +writeWorksheetToFile(data = Furniture.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Furniture.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-HHFoods-TS.R b/R/Archive/27.1-HHFoods-TS.R new file mode 100644 index 00000000..32d76da1 --- /dev/null +++ b/R/Archive/27.1-HHFoods-TS.R @@ -0,0 +1,76 @@ +# 31-Foods-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Foods =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + FoodExpenditure = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda")) + + D <- merge(HHBase,FoodData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, FoodExpenditure, Weight)] + + D[is.na(Quarter), Quarter:=4] + + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + +BigD[is.na(FoodExpenditure),FoodExpenditure:=0] +BigD <- BigD[!is.na(Weight)] + + +F.Q <- BigD[,.(SF=sum(FoodExpenditure*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +F.Y <- BigD[,.(SF=sum(FoodExpenditure*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = F.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Food.Q") + +writeWorksheetToFile(data = F.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Food.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Hotel-TS.R b/R/Archive/27.1-Hotel-TS.R new file mode 100644 index 00000000..3df7a2e2 --- /dev/null +++ b/R/Archive/27.1-Hotel-TS.R @@ -0,0 +1,76 @@ +# 27-Hotel-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Hotel =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Hotel_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Hotels.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Hotels.rda")) + + D <- merge(HHBase,HotelData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Hotel_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Hotel_Exp),Hotel_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Hotel.Q <- BigD[,.(SM=sum(Hotel_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Hotel.Y <- BigD[,.(SM=sum(Hotel_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Hotel.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Hotel.Q") + +writeWorksheetToFile(data = Hotel.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Hotel.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Investment-TS.R b/R/Archive/27.1-Investment-TS.R new file mode 100644 index 00000000..a9397986 --- /dev/null +++ b/R/Archive/27.1-Investment-TS.R @@ -0,0 +1,73 @@ +# 27-Investment-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Investment =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Investment_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Investments.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Investments.rda")) + + D <- merge(HHBase,InvestmentData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Investment_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Investment_Exp),Investment_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + +#Investment.Q <- BigD[,.(SM=sum(Investment_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Investment.Y <- BigD[,.(SM=sum(Investment_Exp*Weight, na.rm = TRUE)),by=Year] + + +#writeWorksheetToFile(data = Investment.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Investment.Q") + +writeWorksheetToFile(data = Investment.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Investment.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Medicals-TS.R b/R/Archive/27.1-Medicals-TS.R new file mode 100644 index 00000000..72425603 --- /dev/null +++ b/R/Archive/27.1-Medicals-TS.R @@ -0,0 +1,76 @@ +# 26-Medicals-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Medicals =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Medical_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Medicals.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Medicals.rda")) + + D <- merge(HHBase,MedicalData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Medical_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Medical_Exp),Medical_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +M.Q <- BigD[,.(SM=sum(Medical_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +M.Y <- BigD[,.(SM=sum(Medical_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = M.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Medical.Q") + +writeWorksheetToFile(data = M.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Medical.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Other-TS.R b/R/Archive/27.1-Other-TS.R new file mode 100644 index 00000000..4c1dc34e --- /dev/null +++ b/R/Archive/27.1-Other-TS.R @@ -0,0 +1,76 @@ +# 27-Other-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Other =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Other_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Others.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Others.rda")) + + D <- merge(HHBase,OtherData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Other_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Other_Exp),Other_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Other.Q <- BigD[,.(SM=sum(Other_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Other.Y <- BigD[,.(SM=sum(Other_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Other.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Other.Q") + +writeWorksheetToFile(data = Other.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Other.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/27.1-Transportation-TS.R b/R/Archive/27.1-Transportation-TS.R new file mode 100644 index 00000000..65790086 --- /dev/null +++ b/R/Archive/27.1-Transportation-TS.R @@ -0,0 +1,76 @@ +# 27-Transportation-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Transportation =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Transportation_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Transportations.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Transportations.rda")) + + D <- merge(HHBase,TransportationData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Transportation_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Transportation_Exp),Transportation_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Transportation.Q <- BigD[,.(SM=sum(Transportation_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Transportation.Y <- BigD[,.(SM=sum(Transportation_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Transportation.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Transportation.Q") + +writeWorksheetToFile(data = Transportation.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Transportation.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/50-CBN Method.R b/R/Archive/50-CBN Method.R new file mode 100644 index 00000000..cdd4bddb --- /dev/null +++ b/R/Archive/50-CBN Method.R @@ -0,0 +1,154 @@ +#50-CBN Method.R +# +# Copyright 2018:Majid Einian- Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + #load Demos+FoodPrices+Weights + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFoodPrice.rda")) + load(file=paste0(Settings$HEISProcessedPath,"HHWeights",year,".rda")) + HHWeights[,Year:=NULL] + + #load Expenditures + for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Energy", "Furnitures","Hotels", + "House", "Medicals","Behdashts","Transportations","Others", + "Resturants")){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + } + + + #load Calories + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + FData[,Region:=NULL] + #for (col in c("FoodKCalories")) FData[is.na(get(col)), (col) := 0] + FData <- FData[FoodKCalories>0] + + #merge groups + CBN<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,FData ,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,HHWeights ,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) + CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) + for (col in c("FoodExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "EducExpenditure", "Energy_Exp", + "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", "Transportation_Exp", + "Other_Exp", "ServiceExp", "Medical_Exp", "Durable_Exp", + "Resturant_Exp")) + CBN[is.na(get(col)), (col) := 0] + + + #Calculate Monthly Total Expenditures + nw <- c("FoodExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", "EducExpenditure", + "Energy_Exp", "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", + "Transportation_Exp", "Other_Exp", "ServiceExp") + w <- c(nw, "Medical_Exp", "Durable_Exp") + + CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + CBN[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + CBN[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + CBN<-merge(CBN,BigFoodPrice,by=c("NewArea","Region"),all.x = TRUE) + CBN<-CBN[Size!=0 & FoodExpenditure!=0 & !is.na(FoodKCalories)] + #CBN[,Home_Per_Metr:=MetrPrice/EqSizeOECD] + + #Calculate Per Values + CBN[,EqSizeCalory :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + CBN[,FoodExpenditure_Per :=FoodExpenditure/EqSizeCalory] + CBN[,FoodKCalories_Per:=FoodKCalories/EqSizeCalory] + + #Calculate per_Calory from resturants + CBN[,Calory_Price:=(FoodExpenditure_Per/FoodKCalories_Per)] +# CBN[,Calory_Price_Area:=weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=NewArea] + CBN[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=NewArea] + CBN[,ResturantKCalories:=(Settings$OutFoodKCXShare*Resturant_Exp)/Calory_Price_Area] + for (col in c("ResturantKCalories")) CBN[is.na(get(col)), (col) := 0] + CBN[,TFoodKCalories:=FoodKCalories+ResturantKCalories] + CBN[,TFoodExpenditure:=FoodExpenditure+(Settings$OutFoodKCXShare*Resturant_Exp)] + # CBN[,weighted.mean(TFoodKCalories,Weight,na.rm = TRUE),by=NewArea] + # CBN[,weighted.mean(FoodKCalories,Weight,na.rm = TRUE),by=NewArea] + + CBN[,TFoodExpenditure_Per :=TFoodExpenditure/EqSizeCalory] + CBN[,TFoodKCalories_Per:=TFoodKCalories/EqSizeCalory] + + + #Sort Expenditure data + CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + + #Calculate cumulative weights + CBN<-CBN[Region=="Urban"] + sum(CBN$Weight) + CBN$cumweight <- cumsum(CBN$Weight) + tx <- max(CBN$cumweight) + + #Calculate deciles by weights + CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] + CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + #Assume that deciles 1 and 2 are poor + CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] + CBNPoor<-CBN[Poor==1] + + + #Food expenditures (equal 2100 KCAL) + CBNPoor[,Bundle_Value:=TFoodExpenditure_Per*Settings$KCaloryNeed_Adult/TFoodKCalories_Per] + CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=NewArea] + + #Real Prices + T_Bundle_Value<-subset(CBNPoor, NewArea==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) + Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) + Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) + + CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=NewArea] + CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=NewArea] + CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=NewArea] + CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=NewArea] + + Index<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,NewArea,Weight)] + Index<-Index[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] + Index<-Index[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + Index<-Index[,.(NewArea,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] + Index<-Index[,.(NewArea,RealPriceIndex)] + CBN<-merge(CBN,Index,by=c("NewArea"),all.x = TRUE) + CBN<-CBN[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + } + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/900-Calculation of CV- Benzin -2020.R b/R/Archive/900-Calculation of CV- Benzin -2020.R new file mode 100644 index 00000000..fcd1fc02 --- /dev/null +++ b/R/Archive/900-Calculation of CV- Benzin -2020.R @@ -0,0 +1,295 @@ +# Calculation of CV- Benzin +# Copyright © 2020: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +options(warn=-1) + +################################################ +################ Benzin ######################## +################################################ +cat("\n\n================ Benzin =====================================\n") + +BenzinTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Benzin)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- BenzinTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Benzin_Exp")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,BenzinExpenditure:=as.numeric(BenzinExpenditure)] + } + + + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + BenzinData <- TF[,lapply(.SD,sum),by=HHID] + save(BenzinData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Benzins.rda")) +} + +################################################ +################ Transportation ######################## +################################################ +cat("\n\n================ Transportation =====================================\n") + +TransportationTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Transportation)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- TransportationTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Transportation_Exp")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,TransportationExpenditure:=as.numeric(TransportationExpenditure)] + } + + + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + TransportationData <- TF[,lapply(.SD,sum),by=HHID] + save(TransportationData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Transportations.rda")) +} +################################################ +################ Other Exp ######################## +################################################ +cat("\n\n================ Other =====================================\n") + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-MD[,.(HHID,HIndivNo,Region,ProvinceCode,NewArea_Name,Total_Exp_Month,Total_Exp_Month_nondurable, + Size,EqSizeOECD,Weight,HSex,HEduLevel, + HEduYears,HActivityState)] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + MD<-merge(MD,Deciles) + + save(MD, file = paste0(Settings$HEISProcessedPath,"Y",year,"MD.rda")) +} + + + +MD[,weighted.mean(Total_Exp_Month,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(Size,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[NewArea_Name=="Sh_Tehran" ,weighted.mean(Total_Exp_Month,Weight),by=.(Decile)][order(Decile)] +MD[NewArea_Name=="Sh_Tehran" ,weighted.mean(Size,Weight),by=.(Decile)][order(Decile)] + +cat("\n\n================ Merge =====================================\n") +################################################ +####### Merge Information ############# +################################################ + +Total<-merge(MD,BenzinData,all = TRUE) +Total<-merge(Total,TransportationData,all = TRUE) +Total[is.na(Total)] <- 0 +Total<-Total[,Other_Exp:=Total_Exp_Month-Benzin_Exp-Transportation_Exp] +Total<-Total[,Benzin_Exp_Add:=ifelse(Benzin_Exp<600000,0,Benzin_Exp-600000)] + +Total<-Total[Decile %in% 1:10] +d<-Total[,sum(Weight),by=c("Region","Decile")] +e<-Total[,sum(Weight*Size),by=c("Region","Decile")] + +#Price Indexes +load(file="Index98.rda") +Total<-merge(Total,Index98,by="ProvinceCode") +Total[,Decile:=as.numeric(Decile)] +Total<-Total[,Yaraneh2:=ifelse(Size==1,550000, + ifelse(Size==2,1030000, + ifelse(Size==3,1380000, + ifelse(Size==4,1720000,2050000))))] +Total<-Total[,Yaraneh:=ifelse(Decile>7,0,Yaraneh2)] + +#Total<-Total[,Yaraneh:=Yaraneh2] +Total[is.na(Total)] <- 0 +#Total<-Total[Benzin_Exp==0] + +############New Prices########### +Total[,BenzinP1:=Benzin_Exp] +Total[,TransportationP1:=Transportation_Exp*Mehr98/137] +Total[,Other_ExpP1:=Other_Exp*Mehr98/137] + +#Total[,BenzinP2:=ifelse(Benzin_Exp<600000, Benzin_Exp*1.5,Benzin_Exp*3)] +Total[,BenzinP2:=ifelse(Benzin_Exp<600000, Benzin_Exp*1.5, + 600000*1.5+Benzin_Exp_Add*3)] +Total[,TransportationP2:=TransportationP1*1.11] +Total[,Other_ExpP2:=Other_ExpP1*1.02] + +################################################ +################ CV ################# +################################################ + +Total<-Total[,BenzinShare:=Benzin_Exp/Total_Exp_Month] +Total<-Total[,TransportationShare:=Transportation_Exp/Total_Exp_Month] +Total<-Total[,Other_ExpShare:=Other_Exp/Total_Exp_Month] + + +Total<-Total[,CV:=Total_Exp_Month*(1-((BenzinP2/BenzinP1)^BenzinShare)*((TransportationP2/TransportationP1)^TransportationShare)* + ((Other_ExpP2/Other_ExpP1)^Other_ExpShare))] + +Total<-Total[,Loss:=ifelse(Yaraneh0,weighted.mean(Loss==1,Weight)] +Total[Benzin_Exp>0 & Decile<8,weighted.mean(Loss,Weight)] +Total[Benzin_Exp>0,sum(Loss*Weight)] +Total[Benzin_Exp>0 & Decile<8,sum(Loss*Weight)] +Total[Benzin_Exp>0,sum(Loss*Weight*Size)] +Total[Benzin_Exp>0 & Decile<8,sum(Loss*Weight*Size)] + +Total[Benzin_Exp==0,weighted.mean(Loss==1,Weight)] +Total[Benzin_Exp==0 & Decile<8,weighted.mean(Loss,Weight)] +Total[Benzin_Exp==0,sum(Loss*Weight)] +Total[Benzin_Exp==0 & Decile<8,sum(Loss*Weight)] +Total[Benzin_Exp==0,sum(Loss*Weight*Size)] +Total[Benzin_Exp==0 & Decile<8,sum(Loss*Weight*Size)] + + +###Table11 +taxi <- read_excel("C:/Users/pc1/Desktop/taxi.xlsx") +taxi<-as.data.table(taxi) +Total[,HHID:=as.character(HHID)] +taxi[,HHID:=as.character(HHID)] +Total<- merge(Total,taxi,by="HHID",all.x = TRUE) +for (col in c("taxicode")) Total[is.na(get(col)), (col) := 0] + +Total[Decile<8,sum(Loss*Weight),by=taxicode] +Total[Decile<8,sum(Weight),by=taxicode] + + +#Graph 1 +a<-Total[,weighted.mean(Loss,Weight),by=.(ProvinceCode)] +b<-Total[Decile<8,weighted.mean(Loss,Weight),by=.(ProvinceCode)] + +#Graph 2 +Loss<-Total[Loss==1] +Loss[,weighted.mean(Loss_Amount,Weight,na.rm = TRUE)] +Loss[,weighted.mean(Loss_Amount,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] + +Loss[,weighted.mean(Loss_Amount/Total_Exp_Month,Weight,na.rm = TRUE)] +Loss[,weighted.mean(Loss_Amount/Total_Exp_Month,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Loss[,Loss_Share:=Loss_Amount/Total_Exp_Month] +Loss2<-Loss[Loss_Share<0.05] + +Loss[,Loss_Section:=ifelse(Loss_Share<0.01,1, + ifelse(Loss_Share<0.02 & Loss_Share>0.01,2, + ifelse(Loss_Share<0.03 & Loss_Share>0.02,3, + ifelse(Loss_Share<0.04 & Loss_Share>0.03,4, + ifelse(Loss_Share<0.05 & Loss_Share>0.04,5,6)))))] + +a<-Loss[,sum(Weight),by=Loss_Section][order(Loss_Section)] +b<-Loss[Decile<8,sum(Weight),by=Loss_Section][order(Loss_Section)] + + + +### Graph 3 +Win<-Total[Loss==0] +Win<-Win[,Win_Amount:=Yaraneh-abs(CV)] +Win[,weighted.mean(Win_Amount,Weight,na.rm = TRUE)] +Win[,weighted.mean(Win_Amount,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] + +Win[,weighted.mean(Win_Amount/Total_Exp_Month,Weight,na.rm = TRUE)] +Win[,weighted.mean(Win_Amount/Total_Exp_Month,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Win[,Win_Share:=Win_Amount/Total_Exp_Month] +Win2<-Win[Win_Share<0.3] + +Win[,Win_Section:=ifelse(Win_Share<0.025,1, + ifelse(Win_Share<0.05 & Win_Share>0.025,2, + ifelse(Win_Share<0.075 & Win_Share>0.05,3, + ifelse(Win_Share<0.1 & Win_Share>0.075,4, + ifelse(Win_Share<0.125 & Win_Share>0.1,5, + ifelse(Win_Share<0.15 & Win_Share>0.125,6, + ifelse(Win_Share<0.175 & Win_Share>0.15,7, + ifelse(Win_Share<0.2 & Win_Share>0.175,8, + ifelse(Win_Share<0.225 & Win_Share>0.2,9, + ifelse(Win_Share<0.25 & Win_Share>0.225,10, + ifelse(Win_Share<0.275 & Win_Share>0.25,11, + ifelse(Win_Share<0.3 & Win_Share>0.275,12,13))))))))))))] + +a<-Win[,sum(Weight),by=Win_Section][order(Win_Section)] +b<-Win[Decile<8,sum(Weight),by=Win_Section][order(Win_Section)] + + +### Graph 4 +Win[,Pop:=sum(Weight),by=Decile] +a<-Win[,sum(Weight/Pop),by=.(Win_Section,Decile)] + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/21-HHFoods-TS.R b/R/Archive/A/21-HHFoods-TS.R new file mode 100644 index 00000000..32d76da1 --- /dev/null +++ b/R/Archive/A/21-HHFoods-TS.R @@ -0,0 +1,76 @@ +# 31-Foods-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Foods =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + FoodExpenditure = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda")) + + D <- merge(HHBase,FoodData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, FoodExpenditure, Weight)] + + D[is.na(Quarter), Quarter:=4] + + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + +BigD[is.na(FoodExpenditure),FoodExpenditure:=0] +BigD <- BigD[!is.na(Weight)] + + +F.Q <- BigD[,.(SF=sum(FoodExpenditure*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +F.Y <- BigD[,.(SF=sum(FoodExpenditure*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = F.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Food.Q") + +writeWorksheetToFile(data = F.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Food.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/21-HHFoods.R b/R/Archive/A/21-HHFoods.R new file mode 100644 index 00000000..de45529b --- /dev/null +++ b/R/Archive/A/21-HHFoods.R @@ -0,0 +1,53 @@ +# 21-HHFoods.R +# Builds the Food expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHFoods =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Food)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","BuyingMethod","PriceSystem","Grams","Kilos","Price","FoodExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:94){ + TF[,Kilos:=as.numeric(Kilos)] + TF[,Price:=as.numeric(Price)] + TF[,FoodExpenditure:=as.numeric(FoodExpenditure)] + } + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + FoodData <- TF[,lapply(.SD,sum),by=HHID] + save(FoodData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/22-HHMedicals.R b/R/Archive/A/22-HHMedicals.R new file mode 100644 index 00000000..8ad3ac5d --- /dev/null +++ b/R/Archive/A/22-HHMedicals.R @@ -0,0 +1,51 @@ +# 32-HHMedical.R +# Builds the Medical expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHMedical =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +MedicalTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Medical)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + mt <- MedicalTables[Year==year] + tab <- mt$Table + if(is.na(tab)) + next + UTM <- Tables[[paste0("U",year,tab)]] + RTM <- Tables[[paste0("R",year,tab)]] + TM <- rbind(UTM,RTM) + for(n in names(TM)){ + x <- which(mt==n) + if(length(x)>0) + setnames(TM,n,names(mt)[x]) + } + pcols <- intersect(names(TM),c("HHID","Code","BuyingMethod","Medical_Exp","Method")) + TM <- TM[,pcols,with=FALSE] + #TM <- TM[Code %in% mt$StartCode:mt$EndCode] + if(year %in% 84:94){ + TM[,Medical_Exp:=as.numeric(Medical_Exp)] + } + TM[,Code:=NULL] + TM[is.na(TM)] <- 0 + MedicalData <- TM[,lapply(.SD,sum),by=HHID] + save(MedicalData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Medicals.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHAmusement.R b/R/Archive/A/23-HHAmusement.R new file mode 100644 index 00000000..d1273b30 --- /dev/null +++ b/R/Archive/A/23-HHAmusement.R @@ -0,0 +1,51 @@ +# 23-HHAmusement.R +# Builds the Amusement expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHAmusement =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +AmusementTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Amusement)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- AmusementTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","b","Amusement_Exp")) + TC <- TC[,pcols,with=FALSE] + #TM <- TM[Code %in% mt$StartCode:mt$EndCode] + if(year %in% 84:94){ + TC[,Amusement_Exp:=as.numeric(Amusement_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + AmusementData <- TC[,lapply(.SD,sum),by=HHID] + save(AmusementData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Amusements.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHClothl.R b/R/Archive/A/23-HHClothl.R new file mode 100644 index 00000000..e69101ca --- /dev/null +++ b/R/Archive/A/23-HHClothl.R @@ -0,0 +1,51 @@ +# 23-HHClothl.R +# Builds the Cloth expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHCloth =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +ClothTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Cloth)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- ClothTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","b","Cloth_Exp")) + TC <- TC[,pcols,with=FALSE] + #TM <- TM[Code %in% mt$StartCode:mt$EndCode] + if(year %in% 84:94){ + TC[,Cloth_Exp:=as.numeric(Cloth_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + ClothData <- TC[,lapply(.SD,sum),by=HHID] + save(ClothData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Cloths.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHCommunication.R b/R/Archive/A/23-HHCommunication.R new file mode 100644 index 00000000..79b3ceaa --- /dev/null +++ b/R/Archive/A/23-HHCommunication.R @@ -0,0 +1,53 @@ +# 23-HHCommunication.R +# Builds the Communication expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHCommunication =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +CommunicationTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Communication)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- CommunicationTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","b","Communication_Exp")) + TC <- TC[,pcols,with=FALSE] + if(year %in% 63:82){ + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + } + if(year %in% 84:94){ + TC[,Communication_Exp:=as.numeric(Communication_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + CommunicationData <- TC[,lapply(.SD,sum),by=HHID] + save(CommunicationData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Communications.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHDurable.R b/R/Archive/A/23-HHDurable.R new file mode 100644 index 00000000..1dccc44e --- /dev/null +++ b/R/Archive/A/23-HHDurable.R @@ -0,0 +1,55 @@ +# 23-HHDurable.R +# Builds the Durable expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHDurable =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +DurableTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Durable)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- DurableTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","b","Durable_Exp","d")) + TC <- TC[,pcols,with=FALSE] + + if(year %in% 84:94){ + TC[,Durable_Exp:=as.numeric(Durable_Exp)] + TC[,d:=as.numeric(d)] + } + if(year %in% 88:94){ + TC[,a:=as.numeric(a)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + DurableData <- TC[,lapply(.SD,sum),by=HHID] + save(DurableData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Durables.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHFurniture.R b/R/Archive/A/23-HHFurniture.R new file mode 100644 index 00000000..37669719 --- /dev/null +++ b/R/Archive/A/23-HHFurniture.R @@ -0,0 +1,51 @@ +# 23-HHFurniture.R +# Builds the Furniture expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHFurniture =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +FurnitureTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Furniture)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- FurnitureTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","b","Furniture_Exp")) + TC <- TC[,pcols,with=FALSE] + #TM <- TM[Code %in% mt$StartCode:mt$EndCode] + if(year %in% 84:94){ + TC[,Furniture_Exp:=as.numeric(Furniture_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + FurnitureData <- TC[,lapply(.SD,sum),by=HHID] + save(FurnitureData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Furnitures.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHHotel.R b/R/Archive/A/23-HHHotel.R new file mode 100644 index 00000000..a0536eb1 --- /dev/null +++ b/R/Archive/A/23-HHHotel.R @@ -0,0 +1,53 @@ +# 23-HHHotel.R +# Builds the Hotel expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHHotel =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +HotelTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Hotel)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- HotelTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","b","Hotel_Exp")) + TC <- TC[,pcols,with=FALSE] + if(year %in% 63:82){ + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + } + if(year %in% 84:94){ + TC[,Hotel_Exp:=as.numeric(Hotel_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + HotelData <- TC[,lapply(.SD,sum),by=HHID] + save(HotelData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Hotels.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHInvestment.R b/R/Archive/A/23-HHInvestment.R new file mode 100644 index 00000000..268e01af --- /dev/null +++ b/R/Archive/A/23-HHInvestment.R @@ -0,0 +1,53 @@ +# 23-HHInvestment.R +# Builds the Investment expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHInvestment =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +InvestmentTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Investment)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- InvestmentTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","Investment_Exp","b")) + TC <- TC[,pcols,with=FALSE] + + if(year %in% 84:94){ + TC[,Investment_Exp:=as.numeric(Investment_Exp)] + TC[,b:=as.numeric(b)] + } + + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + InvestmentData <- TC[,lapply(.SD,sum),by=HHID] + save(InvestmentData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Investments.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHOther.R b/R/Archive/A/23-HHOther.R new file mode 100644 index 00000000..855119ee --- /dev/null +++ b/R/Archive/A/23-HHOther.R @@ -0,0 +1,53 @@ +# 23-HHOther.R +# Builds the Other expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHOther =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +OtherTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Other)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- OtherTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","b","Other_Exp")) + TC <- TC[,pcols,with=FALSE] + if(year %in% 63:82){ + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + } + if(year %in% 84:94){ + TC[,Other_Exp:=as.numeric(Other_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + OtherData <- TC[,lapply(.SD,sum),by=HHID] + save(OtherData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Others.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/23-HHTransportation.R b/R/Archive/A/23-HHTransportation.R new file mode 100644 index 00000000..fddc9ef2 --- /dev/null +++ b/R/Archive/A/23-HHTransportation.R @@ -0,0 +1,53 @@ +# 23-HHTransportation.R +# Builds the Transportation expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHTransportation =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +TransportationTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Transportation)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- TransportationTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","a","b","Transportation_Exp")) + TC <- TC[,pcols,with=FALSE] + if(year %in% 63:82){ + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + } + if(year %in% 84:94){ + TC[,Transportation_Exp:=as.numeric(Transportation_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + TransportationData <- TC[,lapply(.SD,sum),by=HHID] + save(TransportationData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Transportations.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/24-HHEducation.R b/R/Archive/A/24-HHEducation.R new file mode 100644 index 00000000..1d412edc --- /dev/null +++ b/R/Archive/A/24-HHEducation.R @@ -0,0 +1,54 @@ +# 30-HHEducationnExp.R +# Builds the Educationn Expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHEducationnExp =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +EducationTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Education)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + et <- EducationTables[Year==year] + tab <- et$Table + if(is.na(tab)) + next + UTE <- Tables[[paste0("U",year,tab)]] + RTE <- Tables[[paste0("R",year,tab)]] + TE <- rbind(UTE,RTE) + for(n in names(TE)){ + x <- which(et==n) + if(length(x)>0) + setnames(TE,n,names(et)[x]) + } + pcols <- intersect(names(TE),c("HHID","Code","EducExpenditure")) + TE <- TE[,pcols,with=FALSE] + #if(year %in% 89:94){ + #TE[,Code:=as.numeric(Code)] + #} + #if(year %in% 84:94){ + # TF[,Kilos:=as.numeric(Kilos)] + TE[,EducExpenditure:=as.numeric(EducExpenditure)] + TE <- TE[Code %in% et$StartCode:et$EndCode] + TE[,Code:=NULL] + TE[is.na(TE)] <- 0 + EducData <- TE[,lapply(.SD,sum),by=HHID] + save(EducData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Education.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/24-HHEnergy.R b/R/Archive/A/24-HHEnergy.R new file mode 100644 index 00000000..15060771 --- /dev/null +++ b/R/Archive/A/24-HHEnergy.R @@ -0,0 +1,70 @@ +# 24-Energy.R +# +# +# Copyright © 2016:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Energy =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +EnergyTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Energy)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + ty <- EnergyTables[Year==year] + tab <- ty$Table + + UTE <- Tables[[paste0("U",year,tab)]] + RTE <- Tables[[paste0("R",year,tab)]] + TE <- rbind(UTE,RTE) + for(n in names(TE)){ + x <- which(ty==n) + if(length(x)>0) + setnames(TE,n,names(ty)[x]) + } + pcols <- intersect(names(TE),c("HHID","Code","BuyingMethod","a","b","Energy_Exp")) + TE <- TE[,pcols,with=FALSE] + TE <- TE[Code %in% ty$StartCode:ty$EndCode] + if(year %in% 84:94){ + TE[,Energy_Exp:=as.numeric(Energy_Exp)] + } + #TL[,Energy_Exp:=as.numeric(Energy_Exp)] + TE[,Code:=NULL] + + + TE[is.na(TE)] <- 0 + + EnergyData <- TE[,lapply(.SD,sum),by=HHID] + + # if("EnergyValue" %in% names(EnergysData)){ + # cat("\n",year,",", + # # mean(EnergysData$ServiceFee/EnergysData$EnergyValue,na.rm = TRUE)) + # mean(EnergysData$ServiceFee,na.rm = TRUE), mean(EnergysData$EnergyValue,na.rm = TRUE)) + # + # } + # if("HEnergyValue" %in% names(EnergysData)){ + # cat(",", + # # mean(EnergysData$HServiceFee/EnergysData$HEnergyValue,na.rm = TRUE)) + # mean(EnergysData$HServiceFee,na.rm = TRUE), mean(EnergysData$HEnergyValue,na.rm = TRUE)) + # } + + # cat("\n",year,",",mean(EnergyData$ServiceExp,na.rm = TRUE)) + + save(EnergyData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Energy.rda")) +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/25-HHFoods-TS.R b/R/Archive/A/25-HHFoods-TS.R new file mode 100644 index 00000000..13b7412b --- /dev/null +++ b/R/Archive/A/25-HHFoods-TS.R @@ -0,0 +1,76 @@ +# 25-Foods-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Foods =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + FoodExpenditure = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda")) + + D <- merge(HHBase,FoodData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, FoodExpenditure, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(FoodExpenditure),FoodExpenditure:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +F.Q <- BigD[,.(SF=sum(FoodExpenditure*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +F.Y <- BigD[,.(SF=sum(FoodExpenditure*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = F.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Food.Q") + +writeWorksheetToFile(data = F.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Food.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/26-Medicals-TS.R b/R/Archive/A/26-Medicals-TS.R new file mode 100644 index 00000000..72425603 --- /dev/null +++ b/R/Archive/A/26-Medicals-TS.R @@ -0,0 +1,76 @@ +# 26-Medicals-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Medicals =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Medical_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Medicals.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Medicals.rda")) + + D <- merge(HHBase,MedicalData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Medical_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Medical_Exp),Medical_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +M.Q <- BigD[,.(SM=sum(Medical_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +M.Y <- BigD[,.(SM=sum(Medical_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = M.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Medical.Q") + +writeWorksheetToFile(data = M.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Medical.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/27-Amusement-TS.R b/R/Archive/A/27-Amusement-TS.R new file mode 100644 index 00000000..5c59d747 --- /dev/null +++ b/R/Archive/A/27-Amusement-TS.R @@ -0,0 +1,76 @@ +# 27-Amusement-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Amusement =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Amusement_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Amusements.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Amusements.rda")) + + D <- merge(HHBase,AmusementData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Amusement_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Amusement_Exp),Amusement_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Amusement.Q <- BigD[,.(SM=sum(Amusement_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Amusement.Y <- BigD[,.(SM=sum(Amusement_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Amusement.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Amusement.Q") + +writeWorksheetToFile(data = Amusement.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Amusement.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/27-Cloth-TS.R b/R/Archive/A/27-Cloth-TS.R new file mode 100644 index 00000000..3b0a4351 --- /dev/null +++ b/R/Archive/A/27-Cloth-TS.R @@ -0,0 +1,76 @@ +# 27-Cloth-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Cloth =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Cloth_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Medicals.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Cloths.rda")) + + D <- merge(HHBase,ClothData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Cloth_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Cloth_Exp),Cloth_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Cloth.Q <- BigD[,.(SM=sum(Cloth_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Cloth.Y <- BigD[,.(SM=sum(Cloth_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Cloth.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Cloths.Q") + +writeWorksheetToFile(data = Cloth.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Cloths.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/27-Communication-TS.R b/R/Archive/A/27-Communication-TS.R new file mode 100644 index 00000000..c2d8188e --- /dev/null +++ b/R/Archive/A/27-Communication-TS.R @@ -0,0 +1,76 @@ +# 27-Communication-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Communication =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Communication_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Communications.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Communications.rda")) + + D <- merge(HHBase,CommunicationData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Communication_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Communication_Exp),Communication_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Communication.Q <- BigD[,.(SM=sum(Communication_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Communication.Y <- BigD[,.(SM=sum(Communication_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Communication.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Communication.Q") + +writeWorksheetToFile(data = Communication.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Communication.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/27-Education-TS.R b/R/Archive/A/27-Education-TS.R new file mode 100644 index 00000000..3cc749b9 --- /dev/null +++ b/R/Archive/A/27-Education-TS.R @@ -0,0 +1,76 @@ +# 27-Education-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Education =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + EducExpenditure = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Education.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Education.rda")) + + D <- merge(HHBase,EducData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, EducExpenditure, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(EducExpenditure),EducExpenditure:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +E.Q <- BigD[,.(SE=sum(EducExpenditure*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +E.Y <- BigD[,.(SE=sum(EducExpenditure*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = E.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Education.Q") + +writeWorksheetToFile(data = E.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Education.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/27-Energy-TS.R b/R/Archive/A/27-Energy-TS.R new file mode 100644 index 00000000..ea8da7af --- /dev/null +++ b/R/Archive/A/27-Energy-TS.R @@ -0,0 +1,76 @@ +# 27-Energy-TS +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Energy =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Energy_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Energy.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Energy.rda")) + + D <- merge(HHBase,EnergyData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Energy_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Energy_Exp),Energy_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Energy.Q <- BigD[,.(SM=sum(Energy_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Energy.Y <- BigD[,.(SM=sum(Energy_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Energy.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Energy.Q") + +writeWorksheetToFile(data = Energy.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Energy.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/27-Furniture-TS.R b/R/Archive/A/27-Furniture-TS.R new file mode 100644 index 00000000..8b5a5344 --- /dev/null +++ b/R/Archive/A/27-Furniture-TS.R @@ -0,0 +1,76 @@ +# 27-Furniture-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Furniture =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Furniture_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Furnitures.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Furnitures.rda")) + + D <- merge(HHBase,FurnitureData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Furniture_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Furniture_Exp),Furniture_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Furniture.Q <- BigD[,.(SM=sum(Furniture_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Furniture.Y <- BigD[,.(SM=sum(Furniture_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Furniture.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Furniture.Q") + +writeWorksheetToFile(data = Furniture.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Furniture.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/27-Transportation-TS.R b/R/Archive/A/27-Transportation-TS.R new file mode 100644 index 00000000..65790086 --- /dev/null +++ b/R/Archive/A/27-Transportation-TS.R @@ -0,0 +1,76 @@ +# 27-Transportation-TS.R +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Transportation =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +load(Settings$weightsFile) +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + Transportation_Exp = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Transportations.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Transportations.rda")) + + D <- merge(HHBase,TransportationData,by="HHID", all.x = TRUE) + + W <- AllWeights[Year==year] + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, Transportation_Exp, Weight)] + + D[is.na(Quarter), Quarter:=4] + BigD[is.na(Transportation_Exp),Transportation_Exp:=0] + BigD <- BigD[!is.na(Weight)] + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$FoodExpenditure*D$Weight)) +} + + + + +Transportation.Q <- BigD[,.(SM=sum(Transportation_Exp*Weight, na.rm = TRUE)),by=.(Year,Quarter)] + +Transportation.Y <- BigD[,.(SM=sum(Transportation_Exp*Weight, na.rm = TRUE)),by=Year] + + +writeWorksheetToFile(data = Transportation.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Transportation.Q") + +writeWorksheetToFile(data = Transportation.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"),sheet = "Transportation.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/A/29.1-InfantExp.R b/R/Archive/A/29.1-InfantExp.R new file mode 100644 index 00000000..23d1dc1e --- /dev/null +++ b/R/Archive/A/29.1-InfantExp.R @@ -0,0 +1,98 @@ +rm(list=ls()) + +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) + +load(paste0(Settings$HEISProcessedPath,"Y94HHBase.rda")) +load(paste0(Settings$HEISProcessedPath,"Y94HHI.rda")) +load(paste0(Settings$HEISRawPath,"Y94Raw.rda")) + +S01 <- rbind(Tables$R94P3S01,Tables$U94P3S01) +setnames(S01, c("HHID","Code","BuyingMethod","Grams","Kilos","Price","Expenditure")) +S03 <- rbind(Tables$R94P3S03,Tables$U94P3S03) +setnames(S03, c("HHID","Code","BuyingMethod","Expenditure")) +S05 <- rbind(Tables$R94P3S05,Tables$U94P3S05) +setnames(S05, c("HHID","Code","BuyingMethod","Expenditure")) +S09 <- rbind(Tables$R94P3S09,Tables$U94P3S09) +setnames(S09, c("HHID","Code","BuyingMethod","Expenditure")) +S12 <- rbind(Tables$R94P3S12,Tables$U94P3S12) +setnames(S12, c("HHID","Code","BuyingMethod","Expenditure")) +S13 <- rbind(Tables$R94P3S13,Tables$U94P3S13) +setnames(S13, c("HHID","Code","I1","I2","BuyingMethod","Expenditure","SellValue")) +S13 <- S13[,Expenditure:=as.integer(Expenditure)] + +rm(Tables) + +Q1T <- S01[Code==11413][,.(X1=sum(Expenditure)*12),by="HHID"] +Q2T <- S01[Code==11936][,.(X2=sum(Expenditure)*12),by="HHID"] +Q3T1 <- S03[Code %in% 31271:31277][,.(X31=sum(Expenditure)*12),by="HHID"] +Q3T2 <- S03[Code %in% 32141][,.(X32=sum(Expenditure)*12),by="HHID"] +Q3T3 <- S03[Code %in% c(31251:31269,31416)][,.(X33=sum(Expenditure)*12),by="HHID"] +Q3T4 <- S03[Code %in% 32131:32134][,.(X34=sum(Expenditure)*12),by="HHID"] +Q4T <- S05[Code==54034][,.(X4=sum(Expenditure)*12),by="HHID"] +Q5T <- S12[Code==121353][,.(X5=sum(Expenditure)*12),by="HHID"] +Q6T <- S12[Code==123215][,.(X6=sum(Expenditure)*12),by="HHID"] +Q7T <- S09[Code %in% 93111:93117][,.(X7=sum(Expenditure)*12),by="HHID"] +Q7TA <- S13[Code %in% 93118:93129][,.(X7A=sum(Expenditure)),by="HHID"] +Q8T1A <- S13[Code %in% 101111:101115][,.(X81A=sum(Expenditure)),by="HHID"] +Q8T2A <- S13[Code %in% 102111:102114][,.(X82A=sum(Expenditure)),by="HHID"] +Q8T3A <- S13[Code %in% 102211:102215][,.(X83A=sum(Expenditure)),by="HHID"] +Q8T4A <- S13[Code %in% 103111:103116][,.(X84A=sum(Expenditure)),by="HHID"] +Q9TA <- S13[Code %in% 124113][,.(X9A=sum(Expenditure)),by="HHID"] + + +D <- merge(HHBase, Q1T, by="HHID", all.x = TRUE) +D <- merge(D, Q2T, by="HHID", all.x = TRUE) +D <- merge(D, Q3T1, by="HHID", all.x = TRUE) +D <- merge(D, Q3T2, by="HHID", all.x = TRUE) +D <- merge(D, Q3T3, by="HHID", all.x = TRUE) +D <- merge(D, Q3T4, by="HHID", all.x = TRUE) +D <- merge(D, Q4T, by="HHID", all.x = TRUE) +D <- merge(D, Q5T, by="HHID", all.x = TRUE) +D <- merge(D, Q6T, by="HHID", all.x = TRUE) +D <- merge(D, Q7T, by="HHID", all.x = TRUE) +D <- merge(D, Q7TA, by="HHID", all.x = TRUE) +D <- merge(D, Q8T1A, by="HHID", all.x = TRUE) +D <- merge(D, Q8T2A, by="HHID", all.x = TRUE) +D <- merge(D, Q8T3A, by="HHID", all.x = TRUE) +D <- merge(D, Q8T4A, by="HHID", all.x = TRUE) +D <- merge(D, Q9TA, by="HHID", all.x = TRUE) + +D[is.na(D)]<-0 + +D <- merge(HHI,D,by="HHID") + +load(Settings$weightsFile) +W <- AllWeights[Year==94][,Year:=NULL] + +D <- merge(D, W, by="HHID") + + +library(questionr) + +wtd.table(D$NInfants, D$NSmallKids,weights = D$Weight) + +library(XLConnect) + +writeWorksheetToFile(file = "D:/InfantExp.xlsx", data = + D[,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45)] + ,sheet = "All") +writeWorksheetToFile(file = "D:/InfantExp.xlsx", data = + D[,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45),by=NInfants] + ,sheet = "NInfants") +writeWorksheetToFile(file = "D:/InfantExp.xlsx", data = + D[,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45),by=NSmallKids] + ,sheet = "NSmallKids") +writeWorksheetToFile(file = "D:/InfantExp.xlsx", data = + D[,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45),by=.(NInfants,NSmallKids)] + ,sheet = "Both") + + +D[NInfants>0,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45)] +D[NInfants>0,lapply(.SD,weighted.mean,Weight),.SDcols=c(22:23, 30:45)] + +D[X9A>0,lapply(.SD,weighted.mean,Weight),.SDcols=c(45),by=.(NInfants,NSmallKids)] diff --git a/R/Archive/A/31-PubWage.R b/R/Archive/A/31-PubWage.R new file mode 100644 index 00000000..f15b4a9d --- /dev/null +++ b/R/Archive/A/31-PubWage.R @@ -0,0 +1,52 @@ +# 31-PubWage.R +# Builds the Wages data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHPubWage =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +PubWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_PubWage)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + pubwt <- PubWageTable[Year==year] + tab <- pubwt$Table + if(is.na(tab)) + next + UTpubW <- Tables[[paste0("U",year,tab)]] + RTpubW <- Tables[[paste0("R",year,tab)]] + TpubW <- rbind(UTpubW,RTpubW,fill=TRUE) + for(n in names(TpubW)){ + x <- which(pubwt==n) + if(length(x)>0) + setnames(TpubW,n,names(pubwt)[x]) + } + pcols <- intersect(names(TpubW),c("HHID","indiv","shaghel","shoghl","current_shoghl","faaliat","section","hour_in_day","day_in_week","gross_income_m","gross_income_y","mostameri_m","mostameri_y","gheyremostameri_m","gheyremostameri_y","net_income_m","net_income_y")) + TpubW <- TpubW[,pcols,with=FALSE] + + if(year %in% 69:76){ + TpubW <- TpubW[ section ==1 ] + } else if(year %in% 77:94){ + TpubW <- TpubW[ section ==1 ] + } + + TpubW[is.na(TpubW)] <- 0 + # PubWageData <- TpubW[,lapply(.SD,sum),by=HHID] + # save(WageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Wages.rda")) + } +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/32-HHPrvWage.R b/R/Archive/A/32-HHPrvWage.R new file mode 100644 index 00000000..868ddae4 --- /dev/null +++ b/R/Archive/A/32-HHPrvWage.R @@ -0,0 +1,52 @@ +# 32-Private Wage.R +# Builds the Private Wages data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHPrvWage =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +PrvWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_PrvWage)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + prvwt <- PrvWageTable[Year==year] + tab <- prvwt$Table + if(is.na(tab)) + next + UTPrvW <- Tables[[paste0("U",year,tab)]] + RTPrvW <- Tables[[paste0("R",year,tab)]] + TPrvW <- rbind(UTPrvW,RTPrvW,fill=TRUE) + for(n in names(TPrvW)){ + x <- which(prvwt==n) + if(length(x)>0) + setnames(TPrvW,n,names(prvwt)[x]) + } + pcols <- intersect(names(TPrvW),c("HHID","indiv","shaghel","shoghl","current_shoghl","faaliat","section","hour_in_day","day_in_week","gross_income_m","gross_income_y","mostameri_m","mostameri_y","gheyremostameri_m","gheyremostameri_y","net_income_m","net_income_y")) + TPrvW <- TPrvW[,pcols,with=FALSE] + + if(year %in% 69:76){ + TPrvW <- TPrvW[ section ==2 ] + } else if(year %in% 77:94){ + TPrvW <- TPrvW[ section ==3 ] + } + + TPrvW[is.na(TPrvW)] <- 0 + # PrvWageData <- TPrvW[,lapply(.SD,sum),by=HHID] + # save(PrvWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"PrvWages.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/33-HHBussInc.R b/R/Archive/A/33-HHBussInc.R new file mode 100644 index 00000000..7702da9a --- /dev/null +++ b/R/Archive/A/33-HHBussInc.R @@ -0,0 +1,50 @@ +# 33- HHBussInc.R +# +# Builds the bussiness income data.table for households +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHBussIncTable =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +bussWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_BussWage)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + busswt <- bussWageTable[Year==year] + tab <- busswt$Table + if(is.na(tab)) + next + UTbussW <- Tables[[paste0("U",year,tab)]] + RTbussW <- Tables[[paste0("R",year,tab)]] + TbussW <- rbind(UTbussW,RTbussW,fill=TRUE) + for(n in names(TbussW)){ + x <- which(busswt==n) + if(length(x)>0) + setnames(TbussW,n,names(busswt)[x]) + } + pcols <- intersect(names(TbussW),c("HHID","indiv","shaghel","shoghl","faaliat","job condition","agriculture","hour_in_day","day_in_week","cost1","cost2","cost3","cost4","cost5","sell","net_income_y")) + TbussW <- TbussW[,pcols,with=FALSE] + + if(year %in% 69:94){ + TbussW <- TbussW[ agriculture ==2 ] + } + + TbussW[is.na(TbussW)] <- 0 + # bussWageData <- TbussW[,lapply(.SD,sum),by=HHID] + # save(bussWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"bussWages.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/34-HHAgriInc.R b/R/Archive/A/34-HHAgriInc.R new file mode 100644 index 00000000..9255481f --- /dev/null +++ b/R/Archive/A/34-HHAgriInc.R @@ -0,0 +1,50 @@ +# 34-AggrInc.R +#Builds the Agricultral Wages data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHAggrIncTable =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +AgriWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_AgriWage)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Agriwt <- AgriWageTable[Year==year] + tab <- Agriwt$Table + if(is.na(tab)) + next + UTAgriW <- Tables[[paste0("U",year,tab)]] + RTAgriW <- Tables[[paste0("R",year,tab)]] + TAgriW <- rbind(UTAgriW,RTAgriW,fill=TRUE) + for(n in names(TAgriW)){ + x <- which(Agriwt==n) + if(length(x)>0) + setnames(TAgriW,n,names(Agriwt)[x]) + } + pcols <- intersect(names(TAgriW),c("HHID","indiv","shaghel","shoghl","faaliat","job condition","agriculture","hour_in_day","day_in_week","cost1","cost2","cost3","cost4","cost5","sell","net_income_y")) + TAgriW <- TAgriW[,pcols,with=FALSE] + + if(year %in% 69:94){ + TAgriW <- TAgriW[ agriculture ==1 ] + } + + TAgriW[is.na(TAgriW)] <- 0 + # AgriWageData <- TAgriW[,lapply(.SD,sum),by=HHID] + # save(AgriWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"AgriWages.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/35-OtherIncome.R b/R/Archive/A/35-OtherIncome.R new file mode 100644 index 00000000..9b2e8329 --- /dev/null +++ b/R/Archive/A/35-OtherIncome.R @@ -0,0 +1,52 @@ +# 35-OtherIncome.R +# Builds the OtherIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHOtherIncome =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +OtherWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_OtherWage)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Otherwt <- OtherWageTable[Year==year] + tab <- Otherwt$Table + if(is.na(tab)) + next + UTOtherW <- Tables[[paste0("U",year,tab)]] + RTOtherW <- Tables[[paste0("R",year,tab)]] + TOtherW <- rbind(UTOtherW,RTOtherW,fill=TRUE) + for(n in names(TOtherW)){ + x <- which(Otherwt==n) + if(length(x)>0) + setnames(TOtherW,n,names(Otherwt)[x]) + } + pcols <- intersect(names(TOtherW),c("HHID","Code","indiv","retirement","rent","interest","aid","homemade","intra")) + TOtherW <- TOtherW[,pcols,with=FALSE] + + #if(year %in% 63:68){ + # TOtherW <- TOtherW[ section ==1 ] + # } else if(year %in% 77:94){ + # TOtherW <- TOtherW[ section ==1 ] + #} + + TOtherW[is.na(TOtherW)] <- 0 + OtherWageData <- TOtherW[,lapply(.SD,sum),by=HHID] + save(OtherWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"OtherWage.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/A/36-Subsidy.R b/R/Archive/A/36-Subsidy.R new file mode 100644 index 00000000..f7cf4a15 --- /dev/null +++ b/R/Archive/A/36-Subsidy.R @@ -0,0 +1,48 @@ +# 36-Subsidy.R +# Builds the SubsidyIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHSubsidy =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +SubsidyWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_SubsidyWage)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Subsidywt <- SubsidyWageTable[Year==year] + tab <- Subsidywt$Table + if(is.na(tab)) + next + UTSubsidyW <- Tables[[paste0("U",year,tab)]] + RTSubsidyW <- Tables[[paste0("R",year,tab)]] + TSubsidyW <- rbind(UTSubsidyW,RTSubsidyW,fill=TRUE) + for(n in names(TSubsidyW)){ + x <- which(Subsidywt==n) + if(length(x)>0) + setnames(TSubsidyW,n,names(Subsidywt)[x]) + } + pcols <- intersect(names(TSubsidyW),c("HHID","indiv","dimension","month_number","Subsidy")) + TSubsidyW <- TSubsidyW[,pcols,with=FALSE] + + + + TSubsidyW[is.na(TSubsidyW)] <- 0 + SubsidyWageData <- TSubsidyW[,lapply(.SD,sum),by=HHID] + save(SubsidyWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/Above 1 million.R b/R/Archive/Above 1 million.R new file mode 100644 index 00000000..ab72216b --- /dev/null +++ b/R/Archive/Above 1 million.R @@ -0,0 +1,38 @@ +# 168-Step8-PovertyStats.R +# +# Copyright © 2018-2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(writexl) + + +year<-98 +#for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + + MD[,Above:=ifelse((Total_Exp_Month-House_Exp)/Size>10000000,1,0)] + MD[,weighted.mean(Above,Weight)] + MD[,weighted.mean(Above,Weight),by=Region] + MD[,weighted.mean(Above,Weight),by=ProvinceCode][order(ProvinceCode)] + + MD[Above==0,weighted.mean((Total_Exp_Month-House_Exp)/Size,Weight)] + MD[Above==0,weighted.mean((Total_Exp_Month-House_Exp)/Size,Weight),by=Region] + MD[Above==0,weighted.mean((Total_Exp_Month-House_Exp)/Size,Weight),by=ProvinceCode][order(ProvinceCode)] + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/164-Step4-RealDeciles.R b/R/Archive/August 2020/164-Step4-RealDeciles.R new file mode 100644 index 00000000..41012a8c --- /dev/null +++ b/R/Archive/August 2020/164-Step4-RealDeciles.R @@ -0,0 +1,377 @@ +#164-Step 4-FindInitialPoor.R +# +# Copyright © 2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) +library(compare) + +# Function Defs --------------------------------------------------------------------------------- +CalcTornqvistIndex <- function(DataTable){ + X <- DataTable[,.(N=.N,wi1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wi2=weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE), + pi1=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + pi2=weighted.mean(MetrPrice,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,wi:=wi1+wi2] + X[,wi1:=wi1/wi] + X[,wi2:=wi2/wi] + XTeh<-X[NewArea_Name=="Sh_Tehran"] + wk1<-XTeh$wi1 # k == Sh_Tehran + wk2<-XTeh$wi2 + pk1<-XTeh$pi1 + pk2<-XTeh$pi2 + + X[,SimpleIndex:= .5 * pi1/pk1 + .5 * pi2/pk2] + X[,AnotherIndex:= wi1 * pi1/pk1 + wi2 * pi2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wi1)/2 * log(pi1/pk1) + (wk2+wi2)/2 * log(pi2/pk2) ) ] + + + # print(X[Region=="Rural" & NewArea_Name=="Semnan",]) + # if("Percentile" %in% names(DataTable)) + # print(DataTable[Region=="Rural" & NewArea_Name=="Semnan",.(min=min(as.integer(Percentile)),max=max(as.integer(Percentile))),by=.(Region,NewArea_Name)]) + + return(X[,.(Region,NewArea_Name,PriceIndex=TornqvistIndex)]) +} + + +DoDeciling_SetInitialPoor <- function(DataTable,PriceIndexDT){ + + if("PriceIndex" %in% names(DataTable)){ + DataTable <- DataTable[,PriceIndex:=NULL] + } + DataTable <- merge(DataTable,PriceIndexDT,by=c("Region","NewArea_Name")) + + + DataTable <- DataTable[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] + DataTable <- DataTable[,xr25th:=.SD[25,Total_Exp_Month_Per_nondurable_Real],by=.(Region,NewArea_Name)] + DataTable <- DataTable[,First25:=ifelse(Total_Exp_Month_Per_nondurable_Real<=xr25th,1,0)] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] # I removed Region from ordering, deciling is not divided into rural/urban (M.E. 5/11/2020) + DataTable <- DataTable[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + + #Calculate deciles by weights + DataTable <- DataTable[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + DataTable <- DataTable[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + ############################################# + A1<-DataTable[(`71111`+`71112`+`71116`+`71117`>0), + .(A1=weighted.mean(`71111`+`71112`+`71116`+ + `71117`,Weight)),by=Decile] + A2<-DataTable[(`91128`+`91129`>0), + .(A2=weighted.mean(`91128`+`91129`,Weight)),by=Decile] + A3<-DataTable[`53112`>0 ,.(A3=weighted.mean(`53112`,Weight)),by=Decile] + A4<-DataTable[`53116`>0 , .(A4=weighted.mean(`53116`,Weight)),by=Decile] + A5<-DataTable[`53113`>0 ,.(A5=weighted.mean(`53113`,Weight)),by=Decile] + A6<-DataTable[`82113`>0, .(A6=weighted.mean(`82113`,Weight)),by=Decile] + A7<-DataTable[`53125`>0,.(A7=weighted.mean(`53125`,Weight)),by=Decile] + A8<-DataTable[`91311`>0 ,.(A8= weighted.mean(`91311`,Weight)),by=Decile] + A9<-DataTable[`72111`>0,.(A9=weighted.mean(`72111`,Weight)),by=Decile] + if (year!=90 & year!=92 & year!=93 & year!=95){ + A10<-DataTable[`72118`>0 ,.(A10=weighted.mean(`72118`,Weight)),by=Decile] + } + A11<-DataTable[`72319`>0 ,.(A11=weighted.mean(`72319`,Weight)),by=Decile] + + DataTable[,A1:=NULL] + DataTable[,A2:=NULL] + DataTable[,A3:=NULL] + DataTable[,A4:=NULL] + DataTable[,A5:=NULL] + DataTable[,A6:=NULL] + DataTable[,A7:=NULL] + DataTable[,A8:=NULL] + DataTable[,A9:=NULL] + DataTable[,A10:=NULL] + DataTable[,A11:=NULL] + + DataTable<-merge(DataTable,A1,by="Decile") + DataTable<-merge(DataTable,A2,by="Decile") + DataTable<-merge(DataTable,A3,by="Decile") + DataTable<-merge(DataTable,A4,by="Decile") + DataTable<-merge(DataTable,A5,by="Decile") + DataTable<-merge(DataTable,A6,by="Decile") + DataTable<-merge(DataTable,A7,by="Decile") + if (year==98){ + A88<-data.table("3","200000") + names(A88)<-c("Decile","A8") + A8 <- rbind(A8, A88) + } + DataTable<-merge(DataTable,A8,by="Decile",allow.cartesian=TRUE) + DataTable[,A8:=as.numeric(A8)] + DataTable<-merge(DataTable,A9,by="Decile") + if (year!=90 & year!=92 & year!=93 & year!=95){ + DataTable<-merge(DataTable,A10,by="Decile") + } + DataTable<-merge(DataTable,A11,by="Decile") + +# DataTable[car=="True",Added1:=A1] ### We use 0.05 instead of 0.1 +# DataTable[tvcr=="True",Added2:=A2] +# DataTable[freezer=="True" | frez_refrig=="True" | refrigerator=="True", +# Added3:=A3] +# DataTable[oven=="True",Added4:=A4] +# DataTable[washer=="True",Added5:=A5] +# DataTable[cellphone=="True",Added6:=A6] +# DataTable[cooler_gas=="True",Added7:=A7] +# DataTable[computer=="True",Added8:=A8] + # DataTable[car=="True",Added9:=A9] +# if (year!=90 & year!=92 & year!=93 & year!=95){ + # DataTable[car=="True",Added10:=A10] + # } + # DataTable[car=="True",Added11:=A11] + + DataTable[car=="True",Added1:=A1-0.05*Auto_Sale] #We use 0.05 instead of 0.1 + DataTable[tvcr=="True",Added2:=A2-0.033*TV_Sale] + DataTable[freezer=="True" | frez_refrig=="True" | refrigerator=="True", + Added3:=A3-0.033*yakhchal_Sale] + DataTable[oven=="True",Added4:=A4-0.033*ojaghgaz_Sale] + DataTable[washer=="True",Added5:=A5-0.033*lebasshooyi_Sale] + DataTable[cellphone=="True",Added6:=A6-0.11*Mobile_Sale] + DataTable[cooler_gas=="True",Added7:=A7-0.05*Coolergazi_Sale] + DataTable[computer=="True",Added8:=A8] + DataTable[computer=="True",Added8:=A8-0.06*PC_Sale] + DataTable[car=="True",Added9:=A9-0.5*lastik_Sale] + if (year!=90 & year!=92 & year!=93 & year!=95){ + DataTable[car=="True",Added10:=A10] + } + DataTable[car=="True",Added11:=A11] + + if (year!=90 & year!=92 & year!=93 & year!=95){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111", "72118","72319") + } + + if (year==90 | year==92 | year==93 | year==95){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111","72319") + } + + DataTable[, Total_Depreciated_Durable := Reduce(`+`, .SD), .SDcols=dep] + DataTable[is.na(DataTable)] <- 0 + + if (year!=90 & year!=92 & year!=93 & year!=95){ + DataTable[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added10+Added11] + } + if (year==90 | year==92 | year==93 | year==95){ + DataTable[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added11] + } + + #Calculate Monthly Total Expenditures + nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" + ,"Add_to_NonDurable" + ,"Added" + #, "Total_Depreciated_Durable" + ) + w <- c(nw, "Medical_Exp", + "Durable_NoDep","Durable_Emergency") + + + DataTable[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + DataTable[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + DataTable[,weighted.mean(Total_Exp_Month,Weight)] + DataTable[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + + DataTable[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + DataTable[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + ################################################################### + + DataTable <- DataTable[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] + DataTable <- DataTable[,xr25th:=.SD[25,Total_Exp_Month_Per_nondurable_Real],by=.(Region,NewArea_Name)] + DataTable <- DataTable[,First25:=ifelse(Total_Exp_Month_Per_nondurable_Real<=xr25th,1,0)] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] # I removed Region from ordering, deciling is not divided into rural/urban (M.E. 5/11/2020) + DataTable <- DataTable[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + + #Calculate deciles by weights + DataTable <- DataTable[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + DataTable <- DataTable[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + + DataTable <- DataTable[,InitialPoorBasedOnPercentile:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + + return(DataTable) +} + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + if (year!=90 & year!=92 & year!=93 & year!=95){ + SMD <- MD[,.(HHID,Region, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD + ,`71111`,`71117`,`71112`,`71116`, + `91128`,`91129`,`53112`,`53116`, + `53113`,`82113`,`53125`,`91311`, + `72111`,`72118`,`72319` + ,Auto_Sale,TV_Sale,Mobile_Sale,PC_Sale, + yakhchal_Sale,ojaghgaz_Sale,lebasshooyi_Sale, + Coolergazi_Sale,lastik_Sale + ,car,tvcr,freezer,frez_refrig,refrigerator,oven, + washer,cellphone,cooler_gas,computer + ,OriginalFoodExpenditure,FoodOtherExpenditure, Cigar_Exp, Cloth_Exp, + Amusement_Exp, Communication_Exp, + HouseandEnergy_Exp, Furniture_Exp, HotelRestaurant_Exp, Hygiene_Exp, + Transportation_Exp, Other_Exp + ,Add_to_NonDurable,Medical_Exp, + Durable_NoDep,Durable_Emergency)] + } + if (year==90 | year==92 | year==93 | year==95){ + SMD <- MD[,.(HHID,Region, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD + ,`71111`,`71117`,`71112`,`71116`, + `91128`,`91129`,`53112`,`53116`, + `53113`,`82113`,`53125`,`91311`, + `72111`,`72319` + ,Auto_Sale,TV_Sale,Mobile_Sale,PC_Sale, + yakhchal_Sale,ojaghgaz_Sale,lebasshooyi_Sale, + Coolergazi_Sale,lastik_Sale + ,car,tvcr,freezer,frez_refrig,refrigerator,oven, + washer,cellphone,cooler_gas,computer + ,OriginalFoodExpenditure,FoodOtherExpenditure, Cigar_Exp, Cloth_Exp, + Amusement_Exp, Communication_Exp, + HouseandEnergy_Exp, Furniture_Exp, HotelRestaurant_Exp, Hygiene_Exp, + Transportation_Exp, Other_Exp + ,Add_to_NonDurable,Medical_Exp, + Durable_NoDep,Durable_Emergency)] + } + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + S1<-SMD[,.(HHID,Region,NewArea_Name,TFoodKCaloriesHH_Per,Bundle_Value)] + + + PriceDT <- CalcTornqvistIndex(SMD) + SMD <- DoDeciling_SetInitialPoor(SMD,PriceDT) + S2<-SMD[,.(HHID,Region,NewArea_Name,TFoodKCaloriesHH_Per,Bundle_Value)] + + + #comparison <- compare(S1,S2,"row") + #comparison <- setdiff(S1$HHID,S2$HHID) + #x<-S1[HHID %in% comparison] + + SMD[,InitialPoorBasedOnPercentileLastIteration:=1] + i <- 0 + while(SMD[,sum((InitialPoorBasedOnPercentile-InitialPoorBasedOnPercentileLastIteration)^2)]>0.001*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,InitialPoorBasedOnPercentileLastIteration:=InitialPoorBasedOnPercentile] + + SMDIterationPoor <- SMD[InitialPoorBasedOnPercentileLastIteration==1 | First25==1 ] + + if(nrow(SMDIterationPoor[,.N,by=.(Region,NewArea_Name)])<78) + stop("HERE Some Area goes missing!") + if(min(SMDIterationPoor[,.N,by=.(Region,NewArea_Name)]$N)==0) + stop("HERE Some Area goes missing!") + + + + PriceDTBasedOnThisIterationPoor <- CalcTornqvistIndex(SMDIterationPoor) + # print(PriceDTBasedOnThisIterationPoor[Region=="Rural" & NewArea_Name=="Semnan",]) + SMD <- DoDeciling_SetInitialPoor(SMD,PriceDTBasedOnThisIterationPoor) + + cat("\n",i,":",SMD[,sum((InitialPoorBasedOnPercentile-InitialPoorBasedOnPercentileLastIteration)^2)]) + + + + } + +# cat(SMD[,weighted.mean(Calorie_Need_WorldBank,Weight)],"\n") +# cat(SMD[,weighted.mean(TFoodKCaloriesHH_Per,Weight)],"\n") +# cat(SMD[,weighted.mean(Bundle_Value,Weight)],"\n") + + MD[,Added1:=NULL] + MD[,Added2:=NULL] + MD[,Added3:=NULL] + MD[,Added4:=NULL] + MD[,Added5:=NULL] + MD[,Added6:=NULL] + MD[,Added7:=NULL] + MD[,Added8:=NULL] + MD[,Added9:=NULL] + MD[,Added10:=NULL] + MD[,Added11:=NULL] + MD[,Added:=NULL] + + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,InitialPoorBasedOnPercentile,Decile,Percentile, + Added1,Added2,Added3,Added4,Added5,Added6,Added7,Added8, + Added9,Added10,Added11,Added)],by="HHID") + } + + if (year==90 | year==92 | year==93 | year==95){ + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,InitialPoorBasedOnPercentile,Decile,Percentile, + Added1,Added2,Added3,Added4,Added5,Added6,Added7,Added8, + Added9,Added11,Added)],by="HHID") + } + + setnames(MD,"InitialPoorBasedOnPercentile","InitialPoor") # or maybe InitialPoorBasedOnRealIterativePercentile ! + + +###################################################################### +save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + +#A<-merge(A3,A2) +#A<-merge(A,A1) +#A<-merge(A,A4) +#A<-merge(A,A5) +#A<-merge(A,A6) +#A<-merge(A,A7) +#A<-merge(A,A8) +#A<-merge(A,A9) +#A<-merge(A,A10) +#A<-merge(A,A11) + + +} + +x<-MD[,weighted.mean(FoodKCaloriesHH_Per,Weight),by=c("Region,Decile")] + +#z2<-MD[,.(HHID,Decile,Added,Added1,Added2,Added3,Added4,Added5, + # Added6,Added7,Added8,computer,Added9,Added10,Added11)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/August 2020/174-Step4-RealDeciles.R b/R/Archive/August 2020/174-Step4-RealDeciles.R new file mode 100644 index 00000000..51da260c --- /dev/null +++ b/R/Archive/August 2020/174-Step4-RealDeciles.R @@ -0,0 +1,192 @@ +#174-FindInitialPoor.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + + Compare1<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + ###Nominal- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable)] #Deciling in Urban- Rural(Nominal) + #SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Nominal- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + SMDIterationPoor[,sum(ThisIterationPoor),by=.(Region,NewArea_Name)][order(Region,NewArea_Name)] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + #cat("\n",sum(SMD[ProvinceCode==2,.N])) + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + SMD[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + SMD[,sum(Size*Weight),by=.(Region,Decile)][order(Region,Decile)] + + SMD[,weighted.mean(Size,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + # NewDecile<-SMD[,.(HHID,Decile)] + # names(NewDecile)<-c("HHID","NewDecile") + # save(NewDecile,file=paste0(Settings$HEISProcessedPath,"Y",year,"NewDecile.rda")) + + # OldDecile<-SMD[,.(HHID,Decile)] + # names(OldDecile)<-c("HHID","OldDecile") + # save(OldDecile,file=paste0(Settings$HEISProcessedPath,"Y",year,"OldDecile.rda")) + + } + + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewDecile.rda")) + #DecileCompare<-merge(as.data.table(OldDecile),NewDecile,by="HHID") + #DecileCompare[,Diff:=as.numeric(NewDecile)-as.numeric(OldDecile)] + #DecileCompare2<- DecileCompare[,.(.N),by=Diff] + + #ggplot(DecileCompare2, aes(fill=factor(Diff), y=N, x=factor(Diff))) + + # geom_bar(position="dodge", stat="identity") + theme_bw() + + # theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + # geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea_Name,Region)] + MD[,sum(Weight*Size), by=.(Decile,Region)][order(Region,Decile)] + MD[,sum(Weight*Size), by=.(Decile_Nominal,Region)][order(Region,Decile_Nominal)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + ######################################## + + + + + } + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/August 2020/900-Calculation of CV- Benzin -2020.R b/R/Archive/August 2020/900-Calculation of CV- Benzin -2020.R new file mode 100644 index 00000000..fcd1fc02 --- /dev/null +++ b/R/Archive/August 2020/900-Calculation of CV- Benzin -2020.R @@ -0,0 +1,295 @@ +# Calculation of CV- Benzin +# Copyright © 2020: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +options(warn=-1) + +################################################ +################ Benzin ######################## +################################################ +cat("\n\n================ Benzin =====================================\n") + +BenzinTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Benzin)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- BenzinTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Benzin_Exp")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,BenzinExpenditure:=as.numeric(BenzinExpenditure)] + } + + + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + BenzinData <- TF[,lapply(.SD,sum),by=HHID] + save(BenzinData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Benzins.rda")) +} + +################################################ +################ Transportation ######################## +################################################ +cat("\n\n================ Transportation =====================================\n") + +TransportationTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Transportation)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- TransportationTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Transportation_Exp")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,TransportationExpenditure:=as.numeric(TransportationExpenditure)] + } + + + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + TransportationData <- TF[,lapply(.SD,sum),by=HHID] + save(TransportationData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Transportations.rda")) +} +################################################ +################ Other Exp ######################## +################################################ +cat("\n\n================ Other =====================================\n") + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-MD[,.(HHID,HIndivNo,Region,ProvinceCode,NewArea_Name,Total_Exp_Month,Total_Exp_Month_nondurable, + Size,EqSizeOECD,Weight,HSex,HEduLevel, + HEduYears,HActivityState)] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + MD<-merge(MD,Deciles) + + save(MD, file = paste0(Settings$HEISProcessedPath,"Y",year,"MD.rda")) +} + + + +MD[,weighted.mean(Total_Exp_Month,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(Size,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[NewArea_Name=="Sh_Tehran" ,weighted.mean(Total_Exp_Month,Weight),by=.(Decile)][order(Decile)] +MD[NewArea_Name=="Sh_Tehran" ,weighted.mean(Size,Weight),by=.(Decile)][order(Decile)] + +cat("\n\n================ Merge =====================================\n") +################################################ +####### Merge Information ############# +################################################ + +Total<-merge(MD,BenzinData,all = TRUE) +Total<-merge(Total,TransportationData,all = TRUE) +Total[is.na(Total)] <- 0 +Total<-Total[,Other_Exp:=Total_Exp_Month-Benzin_Exp-Transportation_Exp] +Total<-Total[,Benzin_Exp_Add:=ifelse(Benzin_Exp<600000,0,Benzin_Exp-600000)] + +Total<-Total[Decile %in% 1:10] +d<-Total[,sum(Weight),by=c("Region","Decile")] +e<-Total[,sum(Weight*Size),by=c("Region","Decile")] + +#Price Indexes +load(file="Index98.rda") +Total<-merge(Total,Index98,by="ProvinceCode") +Total[,Decile:=as.numeric(Decile)] +Total<-Total[,Yaraneh2:=ifelse(Size==1,550000, + ifelse(Size==2,1030000, + ifelse(Size==3,1380000, + ifelse(Size==4,1720000,2050000))))] +Total<-Total[,Yaraneh:=ifelse(Decile>7,0,Yaraneh2)] + +#Total<-Total[,Yaraneh:=Yaraneh2] +Total[is.na(Total)] <- 0 +#Total<-Total[Benzin_Exp==0] + +############New Prices########### +Total[,BenzinP1:=Benzin_Exp] +Total[,TransportationP1:=Transportation_Exp*Mehr98/137] +Total[,Other_ExpP1:=Other_Exp*Mehr98/137] + +#Total[,BenzinP2:=ifelse(Benzin_Exp<600000, Benzin_Exp*1.5,Benzin_Exp*3)] +Total[,BenzinP2:=ifelse(Benzin_Exp<600000, Benzin_Exp*1.5, + 600000*1.5+Benzin_Exp_Add*3)] +Total[,TransportationP2:=TransportationP1*1.11] +Total[,Other_ExpP2:=Other_ExpP1*1.02] + +################################################ +################ CV ################# +################################################ + +Total<-Total[,BenzinShare:=Benzin_Exp/Total_Exp_Month] +Total<-Total[,TransportationShare:=Transportation_Exp/Total_Exp_Month] +Total<-Total[,Other_ExpShare:=Other_Exp/Total_Exp_Month] + + +Total<-Total[,CV:=Total_Exp_Month*(1-((BenzinP2/BenzinP1)^BenzinShare)*((TransportationP2/TransportationP1)^TransportationShare)* + ((Other_ExpP2/Other_ExpP1)^Other_ExpShare))] + +Total<-Total[,Loss:=ifelse(Yaraneh0,weighted.mean(Loss==1,Weight)] +Total[Benzin_Exp>0 & Decile<8,weighted.mean(Loss,Weight)] +Total[Benzin_Exp>0,sum(Loss*Weight)] +Total[Benzin_Exp>0 & Decile<8,sum(Loss*Weight)] +Total[Benzin_Exp>0,sum(Loss*Weight*Size)] +Total[Benzin_Exp>0 & Decile<8,sum(Loss*Weight*Size)] + +Total[Benzin_Exp==0,weighted.mean(Loss==1,Weight)] +Total[Benzin_Exp==0 & Decile<8,weighted.mean(Loss,Weight)] +Total[Benzin_Exp==0,sum(Loss*Weight)] +Total[Benzin_Exp==0 & Decile<8,sum(Loss*Weight)] +Total[Benzin_Exp==0,sum(Loss*Weight*Size)] +Total[Benzin_Exp==0 & Decile<8,sum(Loss*Weight*Size)] + + +###Table11 +taxi <- read_excel("C:/Users/pc1/Desktop/taxi.xlsx") +taxi<-as.data.table(taxi) +Total[,HHID:=as.character(HHID)] +taxi[,HHID:=as.character(HHID)] +Total<- merge(Total,taxi,by="HHID",all.x = TRUE) +for (col in c("taxicode")) Total[is.na(get(col)), (col) := 0] + +Total[Decile<8,sum(Loss*Weight),by=taxicode] +Total[Decile<8,sum(Weight),by=taxicode] + + +#Graph 1 +a<-Total[,weighted.mean(Loss,Weight),by=.(ProvinceCode)] +b<-Total[Decile<8,weighted.mean(Loss,Weight),by=.(ProvinceCode)] + +#Graph 2 +Loss<-Total[Loss==1] +Loss[,weighted.mean(Loss_Amount,Weight,na.rm = TRUE)] +Loss[,weighted.mean(Loss_Amount,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] + +Loss[,weighted.mean(Loss_Amount/Total_Exp_Month,Weight,na.rm = TRUE)] +Loss[,weighted.mean(Loss_Amount/Total_Exp_Month,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Loss[,Loss_Share:=Loss_Amount/Total_Exp_Month] +Loss2<-Loss[Loss_Share<0.05] + +Loss[,Loss_Section:=ifelse(Loss_Share<0.01,1, + ifelse(Loss_Share<0.02 & Loss_Share>0.01,2, + ifelse(Loss_Share<0.03 & Loss_Share>0.02,3, + ifelse(Loss_Share<0.04 & Loss_Share>0.03,4, + ifelse(Loss_Share<0.05 & Loss_Share>0.04,5,6)))))] + +a<-Loss[,sum(Weight),by=Loss_Section][order(Loss_Section)] +b<-Loss[Decile<8,sum(Weight),by=Loss_Section][order(Loss_Section)] + + + +### Graph 3 +Win<-Total[Loss==0] +Win<-Win[,Win_Amount:=Yaraneh-abs(CV)] +Win[,weighted.mean(Win_Amount,Weight,na.rm = TRUE)] +Win[,weighted.mean(Win_Amount,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] + +Win[,weighted.mean(Win_Amount/Total_Exp_Month,Weight,na.rm = TRUE)] +Win[,weighted.mean(Win_Amount/Total_Exp_Month,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Win[,Win_Share:=Win_Amount/Total_Exp_Month] +Win2<-Win[Win_Share<0.3] + +Win[,Win_Section:=ifelse(Win_Share<0.025,1, + ifelse(Win_Share<0.05 & Win_Share>0.025,2, + ifelse(Win_Share<0.075 & Win_Share>0.05,3, + ifelse(Win_Share<0.1 & Win_Share>0.075,4, + ifelse(Win_Share<0.125 & Win_Share>0.1,5, + ifelse(Win_Share<0.15 & Win_Share>0.125,6, + ifelse(Win_Share<0.175 & Win_Share>0.15,7, + ifelse(Win_Share<0.2 & Win_Share>0.175,8, + ifelse(Win_Share<0.225 & Win_Share>0.2,9, + ifelse(Win_Share<0.25 & Win_Share>0.225,10, + ifelse(Win_Share<0.275 & Win_Share>0.25,11, + ifelse(Win_Share<0.3 & Win_Share>0.275,12,13))))))))))))] + +a<-Win[,sum(Weight),by=Win_Section][order(Win_Section)] +b<-Win[Decile<8,sum(Weight),by=Win_Section][order(Win_Section)] + + +### Graph 4 +Win[,Pop:=sum(Weight),by=Decile] +a<-Win[,sum(Weight/Pop),by=.(Win_Section,Decile)] + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/August 2020/Calory.R b/R/Archive/August 2020/Calory.R new file mode 100644 index 00000000..41bdd3f9 --- /dev/null +++ b/R/Archive/August 2020/Calory.R @@ -0,0 +1,154 @@ +# 703-Bundle 2100 +# Builds the Food Groups data.table for households +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +library(spatstat) +library(writexl) +cat("\n\n================ FoodGroups =====================================\n") +year<-95 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + MetaData <- read_excel(Settings$MetaDataFilePath, Settings$MDS_FoodGroups) + MetaData<-as.data.table(MetaData) + MetaData<-MetaData[,SheetName:=NULL] + FoodNames<-MetaData + save(FoodNames,file ="FoodNames.rda" ) + load(file = "FoodNames.rda") + + Base2<-merge(BigFData,FData,by="HHID") + Base2<-merge(Base2,MD[,.(HHID,NewArea,ProvinceName,cluster3,Decile, + FoodProtein_Per,FinalFoodPoor,FinalPoor,Weight,EqSizeOECD,EqSizeCalory,TFoodKCaloriesHH_Per,FoodKCaloriesHH_Per,NewArea_Name)],by="HHID") + #Base2<-Base2[Region=="Urban" & Decile==2 | Region=="Rural" & Decile==3] + Basep<-Base2[,FGrams_Per:=FGrams/EqSizeCalory] + Basep<-Basep[,FoodKCalories_Per:=FoodKCaloriesHH/EqSizeCalory] + Basep1<-Basep[,weighted.mean(FGrams_Per,Weight*Size),by=c("FoodType","Decile","Region")] + Basep1<-merge(Basep1,FoodNames,by=c("FoodType")) + + Basep1<-Basep1[,Calory:=V1*KCalories] + + dahak<-Basep1[,sum(Calory),by=c("Decile", "Region")] + + Base2<-Base2[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] + Base<-Base[,Coef:=FoodKCalories_Per/Settings$KCaloryNeed_Adult] + + Base<-Base[,FoodKCalories_PerNew:=FoodKCalories_Per/Coef] + Base<-Base[,FGrams_PerNew:=FGrams_Per/Coef] + Basepp<-merge(Basepp,FoodNames,by=c("FoodType")) + + Base<-Basepp[,calory:=FGrams_Per*KCalories] + Basepoor<-Base[,weighted.mean(FGrams_Per,Weight*Size),by=c("ProvinceName","FoodType")] + Basepoor<-Basepoor[,calory:=V1*KCalories] + Basepoor<-Basepoor[,sum(calory),by=c("ProvinceName")] + Basepoor<-merge(Basepoor,FoodNames,by=c("FoodType")) + Basepoor<-Basepoor[,calory:=V1*KCalories] + S<-Basepoor[,sum(calory),by=c("ProvinceCode")] + poor<-Base[,weighted.mean(calory,Weight*Size),by=c("Decile","FoodType")] + + poorc<-poor[,sum(V1),by=c("ProvinceCode")] + s<-Base[,weighted.mean(FoodKCalories_Per,Weight*Size),by=c("ProvinceCode")] + BaseX <- Base[,.(FoodKCalories2=mean(FoodKCalories_PerNew), + FoodKCalories3=mean(FoodKCalories_Per), + FoodProtein2=mean(FoodProtein_Per), + Weight=mean(Weight), + ProvinceCode=mean(ProvinceCode)),by=HHID] + + BaseX1<-Base[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight), + cluster3=mean(cluster3)), + by=.(ProvinceCode,FoodType)] + + #BaseX1<-Base[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight), + # cluster3=mean(cluster3)), + # by=.(FoodType)] + + BaseX1<-BaseX1[,N2:=max(N),by=.(ProvinceCode)] + BaseX1<-BaseX1[,Average_New:=N*Average_Consumption/N2] + BaseM<-BaseX1[,.(ProvinceCode,N,N2,FoodType,Average_New,Average_Consumption)] + BaseM2<-BaseM[FoodType=="Berenj"] + BaseM<-BaseM[,.(ProvinceCode,FoodType,N,Average_New,Average_Consumption)] + BaseM<-merge(BaseM,FoodNames) + BaseM<-BaseM[,Average_Protein:=Average_New*Protein] + baseM<-BaseM[,A_calory:=Average_New*KCalories] + baseM<-baseM[,darsad:=A_calory/2100] + baseM<-baseM[,Calory:=KCalories] + BaseM<-BaseM[order(ProvinceCode,FoodType)] + write_xlsx(price,path="price98.xlsx",col_names=T) + + BaseP<-BaseM[,.(Total_Protein=sum(Average_Protein)), + by=.(ProvinceCode,FoodType)] + basepoor<-BaseM[,.(Total_Calory=sum(Calory)), + by=.(ProvinceCode)] + BaseX<-BaseX[,Region:=as.integer(str_sub(HHID,1,1))] + BaseX[,weighted.mean(FoodProtein2,Weight)] + BaseX[,weighted.mean(FoodProtein2,Weight),by=.(Region,ProvinceCode)] + + + BaseXUrban<-BaseX[Region==1] + BaseXRural<-BaseX[Region==2] + plot(FoodKCalories3~FoodProtein2,data=BaseXUrban) + BaseXRural<-BaseXRural[FoodProtein2<700] + + smoothScatter(BaseXRural$FoodKCalories3~BaseXRural$FoodProtein2) + +#Base2<-Base[FinalPoor==0,.(.N,Average_Consumption=weighted.mean(FGrams_Per,Weight), +# cluster3=mean(cluster3)),by=.(ProvinceCode,FoodType)] + +# Base3<-MD[PEngel>0.6 & FinalPoor==1] + +# Base4<-MD[FinalPoor==0,.(.N,cluster3=mean(cluster3)),by=.(ProvinceCode)] + +# Base[FoodType=="Goosht" & FinalPoor==1 ,weighted.mean(FGrams_Per,Weight,na.rm = TRUE),by=.(ProvinceCode)] + + Base3<-Base[FinalPoor==1] + Base3<-Base2[,FGrams_Per:=FGrams/EqSizeCalory] + Base3<-Base3[,FoodKCalories_Per:=FoodKCaloriesHH/EqSizeCalory] + BaseX3<-Base3[,.(.N,Average_Consumption=weighted.mean(FGrams_Per,Weight)), + by=.(Decile)] + BaseX3<-merge(BaseX3,FoodNames,by=c("FoodType")) + #BaseX3<-BaseX3[,A_calory:=] + BaseX3<-BaseX3[,N2:=max(N),by=.(ProvinceCode)] + BaseX3<-BaseX3[,Average_New:=N*Average_Consumption/N2] + BaseX3<-Base3[,FCalory:=Average_Consumption*KCalories] + BaseX31<-Base3[,sum(FCalory),by=c("ProvinceCode")] + BaseM3<-BaseX3[,.(ProvinceCode,N,N2,FoodType,Average_New)] + BaseM3<-BaseM3[order(ProvinceCode,FoodType)] + write.csv(BaseM3,file="BaseM3.csv") + Base<-Base[,Decile:=as.numeric(Decile)] + BaseDecile<- Base3[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight), + Decile=mean(Decile)), + by=.(Decile,FoodType)] + Base123<-Base[Decile==1 | Decile==2 | Decile==3] + BaseF123<-Base123[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight)), + by=.(FoodType)] + BaseF123<-merge(BaseF123,FoodNames,by=c("FoodType")) + BaseF123<-BaseF123[,A_Calory:=Average_Consumption*KCalories] + BaseF123<-BaseF123[,darsad:=A_Calory/2100] + BaseF123<-BaseF123[,A_Protein:=Average_Consumption*Protein] + write_xlsx(BaseF123,path="BaseF123darsad.xlsx",col_names=T) + + Base8910<-Base[Decile==8 | Decile==9 | Decile==10] + BaseF8910<-Base8910[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight)), + by=.(FoodType)] + BaseF8910<-merge(BaseF8910,FoodNames,by=c("FoodType")) + BaseF8910<-BaseF8910[,A_Calory:=Average_Consumption*KCalories] + BaseF8910<-BaseF8910[,darsad:=A_Calory/2100] + write_xlsx(BaseF8910,path="BaseF8910darsad.xlsx",col_names=T) + BaseP123<-Base123[,.(.N,Average_Potein1=weighted.mean(ave,Weight))] + BaseP8910<-Base8910[,.(.N,Average_Potein1=weighted.mean(FoodProtein_Per,Weight))] + + write_xlsx(baseM,path="ostana-darsad.xlsx",col_names=T) + +cat("\n\n==============Finish==============\nIt took ") +endtime <- proc.time() +cat((endtime-starttime)[3],"seconds.") \ No newline at end of file diff --git a/R/Archive/August 2020/ClusterResults.xlsx b/R/Archive/August 2020/ClusterResults.xlsx new file mode 100644 index 00000000..3813c4a9 Binary files /dev/null and b/R/Archive/August 2020/ClusterResults.xlsx differ diff --git a/R/Archive/August 2020/CountryResults.xlsx b/R/Archive/August 2020/CountryResults.xlsx new file mode 100644 index 00000000..fbd3babe Binary files /dev/null and b/R/Archive/August 2020/CountryResults.xlsx differ diff --git a/R/Archive/August 2020/Exp.R b/R/Archive/August 2020/Exp.R new file mode 100644 index 00000000..b54ef3dd --- /dev/null +++ b/R/Archive/August 2020/Exp.R @@ -0,0 +1,85 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Exp =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +Exp <- data.table(Region=NA_character_, + Total_Exp_Month_Per=NA_real_, + G01=NA_real_,G011=NA_real_, + G0111=NA_real_,G01123=NA_real_, + G0112=NA_real_,G01131=NA_real_, + G0114=NA_real_,G0115=NA_real_, + G0116=NA_real_,G0117=NA_real_, + G0118=NA_real_, + G0119=NA_real_,G012=NA_real_, + G02=NA_real_,G00=NA_real_, + G03=NA_real_,G04=NA_real_, + G041=NA_real_,G042=NA_real_, + G044=NA_real_,G045=NA_real_, + G05=NA_real_,G06=NA_real_, + G07=NA_real_,G08=NA_real_, + G09=NA_real_,G100=NA_real_, + G11=NA_real_,G12=NA_real_, + GT=NA_real_,Year=NA_integer_)[0] + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total10.rda")) + + X<-Total[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + G01=weighted.mean(G01,Weight), + G011=weighted.mean(G011,Weight), + G0111=weighted.mean(G0111,Weight), + G01123=weighted.mean(G0112+G01131,Weight), + G0112=weighted.mean(G0112,Weight), + G01131=weighted.mean(G01131,Weight), + G0114=weighted.mean(G0114,Weight), + G0115=weighted.mean(G0115,Weight), + G0116=weighted.mean(G0116,Weight), + G0117=weighted.mean(G0117,Weight), + G0118=weighted.mean(G0118,Weight), + G0119=weighted.mean(G0119,Weight), + G012=weighted.mean(G012,Weight), + G02=weighted.mean(G02,Weight), + G00=weighted.mean(Total_Exp_Month_Per-G01,Weight), + G03=weighted.mean(G03,Weight), + G04=weighted.mean(G04,Weight), + G041=weighted.mean(G041,Weight), + G042=weighted.mean(G042,Weight), + G044=weighted.mean(G044,Weight), + G045=weighted.mean(G045,Weight), + G05=weighted.mean(G05,Weight), + G06=weighted.mean(G06,Weight), + G07=weighted.mean(G07,Weight), + G08=weighted.mean(G08,Weight), + G09=weighted.mean(G09,Weight), + G100=weighted.mean(G101+G102+G103+G104+G105,Weight), + G11=weighted.mean(G11,Weight), + G12=weighted.mean(G12,Weight), + GT=weighted.mean(Total_Exp_Month_Per-G041,Weight)) + ,by="Region"] + + X[,Year:=year] + Exp <- rbind(Exp,X) +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/Exp2.R b/R/Archive/August 2020/Exp2.R new file mode 100644 index 00000000..0e860798 --- /dev/null +++ b/R/Archive/August 2020/Exp2.R @@ -0,0 +1,110 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Exp =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +Exp <- data.table(#Region=NA_character_, + Decile=NA_integer_, + Year=NA_integer_, + Total_Exp_Month_Per=NA_real_, + G01=NA_real_, + G03=NA_real_,G04=NA_real_, + G05=NA_real_,G06=NA_real_, + G07=NA_real_,G08=NA_real_, + G09=NA_real_,G10=NA_real_, + G11=NA_real_,G12=NA_real_, + G13=NA_real_, + Total_Exp_Month=NA_real_)[0] + +share <- data.table(#Region=NA_character_, + Decile=NA_integer_, + Year=NA_integer_, + G01=NA_real_, + G03=NA_real_,G04=NA_real_, + G05=NA_real_,G06=NA_real_, + G07=NA_real_,G08=NA_real_, + G09=NA_real_,G10=NA_real_, + G11=NA_real_,G12=NA_real_, + G13=NA_real_)[0] + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total10.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + # Total[,Malek:=ifelse(tenure=="OwnLandandBuilding" | tenure=="Apartment" ,1,0)] + #Total[,G041:=ifelse(Malek==1 ,0,G041)] + #Total[,G042:=ifelse(Malek==1,0,G042)] + Total<-merge(Total,Deciles) + + X<-Total[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + G01=weighted.mean(G01+G02,Weight), + G03=weighted.mean(G03,Weight), + G04=weighted.mean(G04,Weight), + #G044=weighted.mean(G044+G045,Weight), + G05=weighted.mean(G05,Weight), + G06=weighted.mean(G06,Weight), + G07=weighted.mean(G07,Weight), + G08=weighted.mean(G08,Weight), + G09=weighted.mean(G09,Weight), + G10=weighted.mean(G101+G102+G103+G104+G105,Weight), + G11=weighted.mean(G11,Weight), + G12=weighted.mean(G12,Weight), + G13=weighted.mean(G13,Weight), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight)) + ,by="Decile" + #,by=c("Region","Decile") + ] + +# Total[,All:=ifelse(Malek==1,G01+G02+G03+G044+G045+ + # G05+G06+G07+G08+G09+ + # G101+G102+G103+G104+G105+G11+G12+G13 + # ,G01+G02+G03+G04+G05+G06+G07+G08+G09+ + # G101+G102+G103+G104+G105+G11+G12+G13)] + + Total[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+ + G101+G102+G103+G104+G105+G11+G12+G13] + + Y<-Total[,.(G01=weighted.mean((G01+G02)/All,Weight), + G03=weighted.mean(G03/All,Weight), + G04=weighted.mean(G04,Weight), + #G044=weighted.mean(G044+G045,Weight), + G05=weighted.mean(G05/All,Weight), + G06=weighted.mean(G06/All,Weight), + G07=weighted.mean(G07/All,Weight), + G08=weighted.mean(G08/All,Weight), + G09=weighted.mean(G09/All,Weight), + G10=weighted.mean((G101+G102+G103+G104+G105)/All,Weight), + G11=weighted.mean(G11/All,Weight), + G12=weighted.mean(G12/All,Weight), + G13=weighted.mean(G13/All,Weight)) + ,by="Decile" + #,by=c("Region","Decile") + ] + + X[,Year:=year] + Exp <- rbind(Exp,X) + + Y[,Year:=year] + share <- rbind(share,Y) +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/Exp3.R b/R/Archive/August 2020/Exp3.R new file mode 100644 index 00000000..e83f801e --- /dev/null +++ b/R/Archive/August 2020/Exp3.R @@ -0,0 +1,113 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Exp =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +Exp <- data.table(Decile=NA_character_, + Year=NA_integer_, + Total_Exp_Month_Per=NA_real_, + G01=NA_real_, + G03=NA_real_,G04=NA_real_, + G05=NA_real_,G06=NA_real_, + G07=NA_real_,G08=NA_real_, + G09=NA_real_,G10=NA_real_, + G11=NA_real_,G12=NA_real_, + G13=NA_real_)[0] + +share <- data.table(#Region=NA_character_, + Year=NA_integer_, + Total_Exp_Month_Per=NA_real_, + G01=NA_real_, + G03=NA_real_,G04=NA_real_, + G05=NA_real_,G06=NA_real_, + G07=NA_real_,G08=NA_real_, + G09=NA_real_,G10=NA_real_, + G11=NA_real_,G12=NA_real_, + G13=NA_real_)[0] + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total10.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + + Total<-merge(Total,Deciles) + + X<-Total[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + G01=weighted.mean(G01+G02,Weight), + G03=weighted.mean(G03,Weight), + G04=weighted.mean(G04,Weight), + G05=weighted.mean(G05,Weight), + G06=weighted.mean(G06,Weight), + G07=weighted.mean(G07,Weight), + G08=weighted.mean(G08,Weight), + G09=weighted.mean(G09,Weight), + G10=weighted.mean(G101+G102+G103+G104+G105,Weight), + G11=weighted.mean(G11,Weight), + G12=weighted.mean(G12,Weight), + G13=weighted.mean(G13,Weight)) + #,by="Region" + ] + + + X<-Total[,.(Total_Exp_Month_Per=weighted.mean(Cheese_PasturizedGram,Weight), + G01=weighted.mean(Cheese_NonPasturizedGram,Weight), + G03=weighted.mean(Cheese_OtherGram,Weight), + G04=weighted.mean(Cheese_PizzaGram,Weight), + G05=weighted.mean(`011428`,Weight), + G06=weighted.mean(`011429`,Weight), + G07=weighted.mean(`011431`,Weight), + G08=weighted.mean(`011432`,Weight), + G09=weighted.mean(G09,Weight), + G10=weighted.mean(G101+G102+G103+G104+G105,Weight), + G11=weighted.mean(G11,Weight), + G12=weighted.mean(G12,Weight), + G13=weighted.mean(G13,Weight)) + ,by=Decile + ] + + Total[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+ + G101+G102+G103+G104+G105+G11+G12+G13] + + Y<-Total[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month,Weight), + G01=weighted.mean((G01+G02)/All,Weight), + G03=weighted.mean(G03/All,Weight), + G04=weighted.mean(G04/All,Weight), + G05=weighted.mean(G05/All,Weight), + G06=weighted.mean(G06/All,Weight), + G07=weighted.mean(G07/All,Weight), + G08=weighted.mean(G08/All,Weight), + G09=weighted.mean(G09/All,Weight), + G10=weighted.mean((G101+G102+G103+G104+G105)/All,Weight), + G11=weighted.mean(G11/All,Weight), + G12=weighted.mean(G12/All,Weight), + G13=weighted.mean(G13/All,Weight)) + #,by="Region" + ] + + X[,Year:=year] + Exp <- rbind(Exp,X) + + Y[,Year:=year] + share <- rbind(share,Y) +} + +write.csv(Exp,file = "Panir.csv") + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/FPLine decile.R b/R/Archive/August 2020/FPLine decile.R new file mode 100644 index 00000000..bdf459aa --- /dev/null +++ b/R/Archive/August 2020/FPLine decile.R @@ -0,0 +1,240 @@ +#166-Step 6- FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + PD<-MD[,.(HHID,FinalPoor)] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodGrams.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + + MD[,Decile:=NULL] + + + MD<-merge(MD,FoodPrices,all.x=TRUE,by="HHID") + MD<-merge(MD,FoodGrams,all.x=TRUE,by="HHID") + MD<-merge(MD,PD,all.x=TRUE,by="HHID") + MD<-merge(MD,Deciles,all.x=TRUE,by="HHID") + MD<-merge(MD,Total[,.(HHID,`011231`,`011232`,`011441`,`011442`,G01153)],all.x=TRUE,by="HHID") + + # y<-MD[,weighted.mean(FoodKCaloriesHH_Per,Weight),by=c("Region","Decile")] + + + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MD[,Selected_Group:=ifelse((Region=="Urban" & Decile==3) | + (Region=="Rural" & Decile==2),1,0)] + MDP <- MD[Selected_Group==1, + .(FPLine=0.001* + (weighted.mean(LavashPrice,Weight,na.rm = TRUE)*weighted.mean(BreadGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE)*weighted.mean(GrainGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(MacaroniPrice,Weight,na.rm = TRUE)*weighted.mean(MacaroniGram/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(AdasPrice,Weight,na.rm = TRUE)*weighted.mean((AdasGram+Loobia_ChitiGram+NokhodGram)/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE)*weighted.mean(SibzaminiGram/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE)*weighted.mean(VegetableShrubsGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE)*weighted.mean(TreeFruitsGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(LivestockGrams,Weight,na.rm = TRUE)*weighted.mean(LivestockGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE)*weighted.mean(PoultryMeat_MGram/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE)*weighted.mean(Egg_MashinGram/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE)*weighted.mean((MilkproductsGrams+MilkGrams)/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE)*weighted.mean(Oil_NabatiGram/(EqSizeCalory),Weight*Size,na.rm = TRUE)+ + weighted.mean(GhandPrice,Weight,na.rm = TRUE)*weighted.mean(GhandGram/(EqSizeCalory),Weight*Size,na.rm = TRUE))), + by=.(cluster3,Region)] + price<- MD[Selected_Group==1, + .(LavashPrice=weighted.mean(LavashPrice,Weight,na.rm = TRUE), + Rice_TaromPrice=weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE), + MacaroniPrice=weighted.mean(MacaroniPrice,Weight,na.rm = TRUE), + HobubatPrice=weighted.mean(AdasPrice,Weight,na.rm = TRUE), + SibzaminiPrice=weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE), + Sabzi_KhordanPrice=weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE), + Banana_CoconutPrice=weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE), + LivestockGrams=weighted.mean(LivestockGrams,Weight,na.rm = TRUE), + PoultryMeat_MPrice=weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE), + Egg_MashinPrice=weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE), + Milk_PasteurizedPrice=weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE), + Oil_NabatiPrice=weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE), + GhandPrice=weighted.mean(GhandPrice,Weight,na.rm = TRUE))] + #by=.(cluster3,Region)] + gram <- MD[Selected_Group==1, + .(BreadGrams=weighted.mean(BreadGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE), + GrainGrams=weighted.mean(GrainGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE), + MacaroniGram=weighted.mean(MacaroniGram/(EqSizeCalory),Weight*Size,na.rm = TRUE), + HobubatGrams=weighted.mean((AdasGram+Loobia_ChitiGram+NokhodGram)/(EqSizeCalory),Weight*Size,na.rm = TRUE), + SibzaminiGram=weighted.mean(SibzaminiGram/(EqSizeCalory),Weight*Size,na.rm = TRUE), + VegetableShrubsGrams=weighted.mean(VegetableShrubsGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE), + TreeFruitsGrams=weighted.mean(TreeFruitsGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE), + LivestockGrams=weighted.mean(LivestockGrams/(EqSizeCalory),Weight*Size,na.rm = TRUE), + PoultryMeat_MGram=weighted.mean(PoultryMeat_MGram/(EqSizeCalory),Weight*Size,na.rm = TRUE), + Egg_MashinGram=weighted.mean(Egg_MashinGram/(EqSizeCalory),Weight*Size,na.rm = TRUE), + MilkproductsGrams=weighted.mean((MilkproductsGrams+MilkGrams)/(EqSizeCalory),Weight*Size,na.rm = TRUE), + Oil_NabatiGram=weighted.mean(Oil_NabatiGram/(EqSizeCalory),Weight,na.rm = TRUE), + GhandGram=weighted.mean(GhandGram/(EqSizeCalory),Weight*Size,na.rm = TRUE))] + # by=.(cluster3,Region)] + gram<-t(gram) + MDP[is.na(MDP)] <- 0 + min<-MDP[FPLine>0,min(FPLine)] + MDP[,FPLine:=ifelse(FPLine==0,min,FPLine)] + + Bundle <- MD[, + .( BreadGrams=weighted.mean(BreadGrams/EqSizeCalory,Weight,na.rm = TRUE), + BerenjKhareji= weighted.mean((Rice_Khareji1Gram+Rice_Khareji2Gram)/EqSizeCalory,Weight,na.rm = TRUE), + BerenjIrani= weighted.mean((Rice_TaromGram+ Rice_AshGram+ + Rice_NonameGram+ Rice_MahaliGram+Rice_DomsiahGram+ + Rice_KhoordeGram)/EqSizeCalory,Weight,na.rm = TRUE), + MacaroniGram= weighted.mean(MacaroniGram/EqSizeCalory,Weight,na.rm = TRUE), + HoboobatGram= weighted.mean((AdasGram+Loobia_ChitiGram+NokhodGram)/EqSizeCalory,Weight,na.rm = TRUE), + SibzaminiGram= weighted.mean(SibzaminiGram/EqSizeCalory,Weight,na.rm = TRUE), + VegetableShrubsGrams= weighted.mean(VegetableShrubsGrams/EqSizeCalory,Weight,na.rm = TRUE), + TreeFruitsGrams= weighted.mean(TreeFruitsGrams/EqSizeCalory,Weight,na.rm = TRUE), + CowMeatGram= weighted.mean(CowMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + SheepGrams= weighted.mean(SheepMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + PoultryMeat_MGram= weighted.mean(PoultryMeat_MGram/EqSizeCalory,Weight,na.rm = TRUE), + Egg_MashinGram= weighted.mean(Egg_MashinGram/EqSizeCalory,Weight,na.rm = TRUE), + MilkproductsGrams= weighted.mean((MilkproductsGrams+MilkGrams)/EqSizeCalory,Weight,na.rm = TRUE), + Oil_NabatiGram= weighted.mean((Oil_NabatiGram+Oil_OliveGram+Oil_Nabati_OtherGram)/EqSizeCalory,Weight,na.rm = TRUE), + GhandGram= weighted.mean((GhandGram+ShekarGram)/EqSizeCalory,Weight,na.rm = TRUE)) + #,by="Region" + ] + + Bundle2 <- MD[, + .( BreadGrams=weighted.mean(BreadGrams/EqSizeCalory,Weight,na.rm = TRUE), + BerenjKhareji= weighted.mean((Rice_Khareji1Gram+Rice_Khareji2Gram)/EqSizeCalory,Weight,na.rm = TRUE), + BerenjIrani= weighted.mean((Rice_TaromGram+ Rice_AshGram+ + Rice_NonameGram+ Rice_MahaliGram+Rice_DomsiahGram+ + Rice_KhoordeGram)/EqSizeCalory,Weight,na.rm = TRUE), + MacaroniGram= weighted.mean(MacaroniGram/EqSizeCalory,Weight,na.rm = TRUE), + HoboobatGram= weighted.mean((AdasGram+Loobia_ChitiGram+NokhodGram)/EqSizeCalory,Weight,na.rm = TRUE), + SibzaminiGram= weighted.mean(SibzaminiGram/EqSizeCalory,Weight,na.rm = TRUE), + VegetableShrubsGrams= weighted.mean(VegetableShrubsGrams/EqSizeCalory,Weight,na.rm = TRUE), + TreeFruitsGrams= weighted.mean(TreeFruitsGrams/EqSizeCalory,Weight,na.rm = TRUE), + CowMeatGram= weighted.mean(CowMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + SheepGrams= weighted.mean(SheepMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + PoultryMeat_MGram= weighted.mean(PoultryMeat_MGram/EqSizeCalory,Weight,na.rm = TRUE), + Egg_MashinGram= weighted.mean(Egg_MashinGram/EqSizeCalory,Weight,na.rm = TRUE), + MilkproductsGrams= weighted.mean((MilkproductsGrams+MilkGrams)/EqSizeCalory,Weight,na.rm = TRUE), + Oil_NabatiGram= weighted.mean((Oil_NabatiGram+Oil_OliveGram+Oil_Nabati_OtherGram)/EqSizeCalory,Weight,na.rm = TRUE), + GhandGram= weighted.mean((GhandGram+ShekarGram)/EqSizeCalory,Weight,na.rm = TRUE)) + ,by="Region" + ] + + Bundle3 <- MD[, + .( BreadGrams=weighted.mean(BreadGrams/EqSizeCalory,Weight,na.rm = TRUE), + BerenjKhareji= weighted.mean((Rice_Khareji1Gram+Rice_Khareji2Gram)/EqSizeCalory,Weight,na.rm = TRUE), + BerenjIrani= weighted.mean((Rice_TaromGram+ Rice_AshGram+ + Rice_NonameGram+ Rice_MahaliGram+Rice_DomsiahGram+ + Rice_KhoordeGram)/EqSizeCalory,Weight,na.rm = TRUE), + MacaroniGram= weighted.mean(MacaroniGram/EqSizeCalory,Weight,na.rm = TRUE), + HoboobatGram= weighted.mean((AdasGram+Loobia_ChitiGram+NokhodGram)/EqSizeCalory,Weight,na.rm = TRUE), + SibzaminiGram= weighted.mean(SibzaminiGram/EqSizeCalory,Weight,na.rm = TRUE), + VegetableShrubsGrams= weighted.mean(VegetableShrubsGrams/EqSizeCalory,Weight,na.rm = TRUE), + TreeFruitsGrams= weighted.mean(TreeFruitsGrams/EqSizeCalory,Weight,na.rm = TRUE), + CowMeatGram= weighted.mean(CowMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + SheepGrams= weighted.mean(SheepMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + PoultryMeat_MGram= weighted.mean(PoultryMeat_MGram/EqSizeCalory,Weight,na.rm = TRUE), + Egg_MashinGram= weighted.mean(Egg_MashinGram/EqSizeCalory,Weight,na.rm = TRUE), + MilkproductsGrams= weighted.mean((MilkproductsGrams+MilkGrams)/EqSizeCalory,Weight,na.rm = TRUE), + Oil_NabatiGram= weighted.mean((Oil_NabatiGram+Oil_OliveGram+Oil_Nabati_OtherGram)/EqSizeCalory,Weight,na.rm = TRUE), + GhandGram= weighted.mean((GhandGram+ShekarGram)/EqSizeCalory,Weight,na.rm = TRUE)) + ,by="FinalPoor" + ] + + Bundle4 <- MD[, + .( BreadGrams=weighted.mean(BreadGrams/EqSizeCalory,Weight,na.rm = TRUE), + BerenjKhareji= weighted.mean((Rice_Khareji1Gram+Rice_Khareji2Gram)/EqSizeCalory,Weight,na.rm = TRUE), + BerenjIrani= weighted.mean((Rice_TaromGram+ Rice_AshGram+ + Rice_NonameGram+ Rice_MahaliGram+Rice_DomsiahGram+ + Rice_KhoordeGram)/EqSizeCalory,Weight,na.rm = TRUE), + MacaroniGram= weighted.mean(MacaroniGram/EqSizeCalory,Weight,na.rm = TRUE), + HoboobatGram= weighted.mean((AdasGram+Loobia_ChitiGram+NokhodGram)/EqSizeCalory,Weight,na.rm = TRUE), + SibzaminiGram= weighted.mean(SibzaminiGram/EqSizeCalory,Weight,na.rm = TRUE), + VegetableShrubsGrams= weighted.mean(VegetableShrubsGrams/EqSizeCalory,Weight,na.rm = TRUE), + TreeFruitsGrams= weighted.mean(TreeFruitsGrams/EqSizeCalory,Weight,na.rm = TRUE), + CowMeatGram= weighted.mean(CowMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + SheepGrams= weighted.mean(SheepMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + PoultryMeat_MGram= weighted.mean(PoultryMeat_MGram/EqSizeCalory,Weight,na.rm = TRUE), + Egg_MashinGram= weighted.mean(Egg_MashinGram/EqSizeCalory,Weight,na.rm = TRUE), + MilkproductsGrams= weighted.mean((MilkproductsGrams+MilkGrams)/EqSizeCalory,Weight,na.rm = TRUE), + Oil_NabatiGram= weighted.mean((Oil_NabatiGram+Oil_OliveGram+Oil_Nabati_OtherGram)/EqSizeCalory,Weight,na.rm = TRUE), + GhandGram= weighted.mean((GhandGram+ShekarGram)/EqSizeCalory,Weight,na.rm = TRUE)) + ,by="Decile" + ] + + Bundle5 <- MD[,.( PoultryMeat_MGram= weighted.mean((`011231`+`011232`)/Total_Exp_Month,Weight,na.rm = TRUE), + Egg_MashinGram= weighted.mean((`011441`+`011442`)/Total_Exp_Month,Weight,na.rm = TRUE), + Oil_NabatiGram= weighted.mean(G01153/Total_Exp_Month,Weight,na.rm = TRUE)),by="Decile"] + + Bundle6 <- MD[,.( PoultryMeat_MGram= weighted.mean((`011231`+`011232`)/Total_Exp_Month,Weight,na.rm = TRUE), + Egg_MashinGram= weighted.mean((`011441`+`011442`)/Total_Exp_Month,Weight,na.rm = TRUE), + Oil_NabatiGram= weighted.mean(G01153/Total_Exp_Month,Weight,na.rm = TRUE))] + + MD <- merge(MD,MDP,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + # print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] + # cat(MD[,weighted.mean(FPLine,Weight)]) + # cat(MD[cluster3==13,weighted.mean(Calory_Price,Weight)]) + #cat(MD[cluster3==1,weighted.mean(TOriginalFoodExpenditure_Per,Weight)]) + x<-MD[,weighted.mean(FPLine,Weight),by="cluster3"] + + + # cat(MD[,weighted.mean(TOriginalFoodExpenditure_Per,Weight)],"\n") + # cat(MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE)],"\n") + # cat(MD[,weighted.mean(Calory_Price,Weight,na.rm = TRUE)],"\n") + # cat(MD[cluster3==1,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") + cat(MD[,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/FinalClusterResults.csv b/R/Archive/August 2020/FinalClusterResults.csv new file mode 100644 index 00000000..b3a46159 --- /dev/null +++ b/R/Archive/August 2020/FinalClusterResults.csv @@ -0,0 +1,118 @@ +"","Year","cluster3","MetrPrice","House_Share","FoodKCaloriesHH_Per","SampleSize","Engle","FPLine","PovertyLine","PovertyHCR","PovertyGap","PovertyDepth" +"1",90,1,83483.0965608554,0.443609560192396,2287.62474677021,1089,0.165317613186018,470223.60359505,2893791.70547409,0.157131227009209,0.200668924783955,0.0761145817316945 +"2",90,2,35727.640876617,0.313144463168382,2569.11359506775,1579,0.21916365344719,462903.873849398,2444466.09974327,0.240633747836637,0.167463301588827,0.0632201202236656 +"3",90,3,25061.3638713744,0.251291546727633,2538.63241564292,4400,0.239266782544565,446816.378418887,2128356.73459917,0.260658560658926,0.189925476573745,0.081379093601781 +"4",90,4,24330.8977394916,0.263057651676337,2860.7299882044,4797,0.256542274491646,429117.395776045,1874819.18271989,0.230831853627229,0.182722605598011,0.0681909783544311 +"5",90,5,19538.4515696242,0.209513307341499,2937.45441151759,1987,0.260693862015016,428417.496765501,1956300.58547161,0.29975344159148,0.226001265171158,0.0938022799026671 +"6",90,6,19742.6665853312,0.223749443074842,3034.81788824244,4156,0.28405790718476,414867.137095647,1680970.59445695,0.208683907231341,0.162491408626194,0.0583343937065799 +"7",90,7,16418.1123550452,0.231050421359141,2495.07696910701,687,0.352681416717063,429261.468008799,1249502.66365661,0.371251144989481,0.298668165620902,0.134760872587237 +"8",90,8,33161.1607406999,0.311326620728794,2405.98492102608,1017,0.277017688670743,435641.078101872,1683927.93264853,0.248600753226546,0.185156822146428,0.0696655574504246 +"9",90,9,9777.74347668737,0.135982406101807,3148.82505632481,1316,0.304944571088642,414155.338451608,1554163.81730917,0.1619746300824,0.186459229358984,0.082107218802308 +"10",90,10,9419.48318949192,0.127490173516476,2903.17913942162,3273,0.344079414227933,415327.513080726,1284014.9873293,0.210660034587393,0.172327765144024,0.0660581476155984 +"11",90,11,8531.06417123045,0.109480722737293,3442.92936506485,5207,0.340688903897617,422686.02970628,1367386.89116901,0.220946168453889,0.159730447275587,0.0700660189214132 +"12",90,12,8163.57273027914,0.105840542437858,3466.60564372655,6710,0.363170144179986,375784.407563461,1161323.69429654,0.182750513786953,0.147727501929132,0.0509548045288288 +"13",90,13,8308.99756561054,0.141893590688483,2960.556884941,2206,0.407449592926424,416184.712924489,914024.303544921,0.292043541472637,0.25361641693206,0.156866322749433 +"14",91,1,109880.293590017,0.440783848251442,2326.48765155119,1080,0.176843771146057,712962.435903077,4192490.46920373,0.234962592922627,0.194914649512863,0.0817807789881384 +"15",91,2,46513.6914218407,0.333496338962256,2511.32545856026,1554,0.226512851419101,663181.674699106,3133069.72980338,0.26251592812637,0.178556760247536,0.0606282405998765 +"16",91,3,30844.6296669873,0.266042821512245,2474.61990474244,4359,0.253877008568693,636781.426104774,2789300.18172548,0.332798386079257,0.191156131643659,0.085450237637498 +"17",91,4,29548.7531646047,0.259599131509167,2796.45563092613,4706,0.275894855190004,619139.577837982,2469508.18685468,0.255233178293171,0.184100663945474,0.0743161897589458 +"18",91,5,22623.971502331,0.193369216225163,2911.2167937069,2058,0.281907103263211,599722.305688252,2435858.23401022,0.280884853221673,0.179435885578588,0.065964558294648 +"19",91,6,23485.0975798271,0.210545689783802,3212.61315722274,4068,0.310413799804057,567423.627612095,2063415.38223409,0.180619387636181,0.156534931520982,0.0563269566461091 +"20",91,7,20390.5603985167,0.200307433427224,2638.37121998441,675,0.381042442563676,679907.610361748,1859677.52310145,0.383870929345159,0.252205654575655,0.104407400016496 +"21",91,8,40701.1114656769,0.300617176605067,2096.59668096696,1043,0.263190150969282,625020.377931733,2263120.29345509,0.275313121638001,0.2077021627213,0.0702712824915316 +"22",91,9,11774.6166091593,0.139879025451041,3111.84944002877,1321,0.337578645574728,573600.058830336,1998411.69574612,0.196478197895454,0.157544613339449,0.0755408232003073 +"23",91,10,11552.0073291683,0.122701969596206,3062.67636068307,3246,0.359404486604552,572620.63450438,1726508.26141221,0.208338747678104,0.166241623318647,0.0606932302288851 +"24",91,11,10167.423795401,0.104969273826533,3482.79960648083,5168,0.367377640172593,609126.170060024,1824724.07170084,0.187868687441627,0.163097516340257,0.0660054655476726 +"25",91,12,9754.31529489245,0.104388881179002,3506.94519991429,6630,0.383078890334272,545757.805237826,1555829.37932223,0.212837773501516,0.139478564722395,0.0664144726699727 +"26",91,13,10234.0543992258,0.126695459368961,2962.55544823349,2196,0.435136638194555,590694.234804718,1324704.31939809,0.283682036300874,0.21564747740303,0.082287895933872 +"27",92,1,138235.462388913,0.44979876489208,2231.297412505,998,0.169548322328298,923110.003233481,5503169.8549108,0.225144392923031,0.168776412159207,0.0719827715664783 +"28",92,2,61517.4781585873,0.342124631365282,2372.94541410678,1238,0.216275392163606,877529.265960984,4085518.50037393,0.254232412397463,0.161467144132851,0.0609752186450083 +"29",92,3,39998.1214186432,0.269756691601527,2254.24448661067,4446,0.245724358172207,825336.527327005,3537509.60698688,0.289678421613617,0.177180383818912,0.070940965191777 +"30",92,4,38701.0524607681,0.265095685143559,2511.68585731014,4885,0.259645552281168,816185.079151221,3177183.37209858,0.24502158239611,0.177581097220832,0.0702076869523374 +"31",92,5,30216.0402048502,0.210991355536959,2698.44235822007,2016,0.281889698109544,816696.612436602,3146834.79761723,0.242781326222895,0.171016258926028,0.073009758078828 +"32",92,6,29525.3646149638,0.206115799827221,2997.04993807428,4588,0.309929411497857,805615.552964543,2793375.51391809,0.176588638926866,0.14848716152563,0.0546284251842989 +"33",92,7,26214.8148347038,0.206400137600114,2747.54582539955,680,0.372367598061543,820187.952354813,2276104.1598144,0.314250366631409,0.252064238079342,0.0944778278029089 +"34",92,8,50092.7247298967,0.342623852535789,1977.99839228842,998,0.267663003530441,779272.754619761,2879871.63384694,0.291657346608665,0.204893844534257,0.0692442107582512 +"35",92,9,16094.3324552818,0.138972597895138,2822.5076346467,1299,0.329356750900289,774385.68278295,2741779.96301599,0.207582910156018,0.157732275975535,0.0768150850186975 +"36",92,10,13585.6810143609,0.117375256412339,2971.33519587726,2986,0.362255351169103,784674.693614261,2384827.04801359,0.209343160123113,0.180671293024174,0.0726309258584698 +"37",92,11,12142.6689309577,0.110244785285022,3054.88009845411,5106,0.377524828954112,842580.270355474,2500411.16934754,0.285357403782497,0.172456090985875,0.106815437580367 +"38",92,12,11355.8730028203,0.10361479541427,3208.77911489228,6742,0.388490521420367,722451.046728431,2032526.98145588,0.219347912537627,0.147491698859169,0.0817910487681041 +"39",92,13,12608.7476541297,0.108175525257608,3115.36349686431,2249,0.424503461701914,789099.02431606,1903854.79325925,0.330955233672176,0.232302957092509,0.091777129656552 +"40",93,1,154695.280058346,0.431090205606863,2243.89926344306,1044,0.163191449280162,1021537.7647505,6353199.93296438,0.205848882298146,0.172916431204482,0.0587860782878917 +"41",93,2,70920.5408519514,0.328774632822183,2324.3557856697,1250,0.197568646071801,939261.058746747,4575966.94797759,0.183394349469674,0.165100461873366,0.0631918296778174 +"42",93,3,46346.64036219,0.278604805469428,2184.1118155798,4441,0.231956203032532,930140.988275988,3992035.2666262,0.270025102351642,0.176241145804905,0.0701013399463811 +"43",93,4,45070.7614600078,0.281164387210139,2496.9970692565,4859,0.246233831072316,866194.141907146,3439740.87484994,0.221578966731466,0.186332901392893,0.0886080244327681 +"44",93,5,34667.922897826,0.242284873024948,2555.04213511614,2018,0.260944747962809,884304.052556752,3417317.30026545,0.287972208672762,0.218833125526237,0.0988454382295095 +"45",93,6,33286.8920964447,0.221490391553037,2889.85568187719,4566,0.29201413292815,866047.468224991,3036207.09428948,0.188293127936083,0.158911194625471,0.0610362453670604 +"46",93,7,30581.7269489926,0.218561922475901,2693.99802828864,669,0.354565464903166,881466.870849591,2483864.68637641,0.329805197754047,0.266884226569278,0.103243811804964 +"47",93,8,58085.5460063761,0.347183201477419,2053.96784792558,1035,0.251049026263738,892072.540840668,3425831.55698889,0.252759729368407,0.155762357324205,0.0555730290225666 +"48",93,9,19797.1235769944,0.159432067450693,2728.04723164776,1285,0.306542122819727,862565.869651657,3091596.80315957,0.218157018232256,0.168249999573189,0.0810221501162696 +"49",93,10,15903.0932576049,0.12810629213486,2918.16277908262,2986,0.334059356757952,858333.608631921,2669385.92444516,0.218887088800503,0.148863789361536,0.0628486002252601 +"50",93,11,12248.496363755,0.112148926100182,2931.48424691886,5057,0.347070299080671,858172.537228627,2539829.65877339,0.280221381681181,0.197106481850898,0.0904117036109631 +"51",93,12,12716.6030212177,0.117062216303132,2997.82704524709,6729,0.372871863153725,803411.520612376,2239577.05581908,0.274177185674938,0.227553339178369,0.106044627492681 +"52",93,13,13444.3002921002,0.110775304977928,3000.88106999818,2236,0.423703046841001,847745.497801425,2070645.0582292,0.376788770478425,0.277606287240003,0.11189566410148 +"53",94,1,172173.49112682,0.419974567399585,2430.04634177846,1042,0.158947687996983,1025736.44062841,6681227.59096149,0.185767010022344,0.139218376511558,0.0535419166438188 +"54",94,2,79181.6734469273,0.332451297879975,2311.46423316191,1290,0.186754993138436,1021994.92754913,5212290.11672466,0.177650895267982,0.146531576738355,0.0698040949788995 +"55",94,3,50790.1185337272,0.274976843963316,2309.96579021381,4470,0.229840840204151,970418.312139302,4198783.21419362,0.243222266749966,0.162856804621018,0.0630200859142517 +"56",94,4,50177.3935802797,0.28487565015703,2386.86428142899,4810,0.234845713292714,907368.291253843,3742870.97113577,0.198976436471037,0.169807763367369,0.0583125614351221 +"57",94,5,36154.6843555784,0.238671565264335,2361.82841687979,2021,0.242543114594461,920751.716378574,3662252.51072995,0.324760697908096,0.213971080420099,0.0887903640587529 +"58",94,6,36086.7409805983,0.219985287262337,2887.56863914465,4513,0.281464606054722,867528.122991179,3123653.77426276,0.141649280643045,0.159912867265368,0.056555728032609 +"59",94,7,34676.4662625082,0.212465859795866,2696.28003360661,674,0.33735810422994,924287.259277158,2644279.89401947,0.328205672689754,0.23916703057625,0.0940205468007922 +"60",94,8,61862.0166054291,0.320908165169971,1891.57817034582,1066,0.225961910416906,966549.568356459,3787296.16253228,0.296777708783377,0.152614736589002,0.0600492431615241 +"61",94,9,22427.0894830033,0.161270342394203,2818.71088161082,1266,0.296204236087828,933256.090765381,3441302.77630405,0.170075180470588,0.17143505293063,0.0719576427006966 +"62",94,10,19173.3620404943,0.143950653826461,2828.29145906916,2963,0.302969785812254,894920.348301084,2888460.00153224,0.206329821966271,0.144735673709018,0.0657269543600941 +"63",94,11,13537.1061746772,0.111689811179616,2840.33733191106,5062,0.327075460000784,917772.322033559,2754998.46304454,0.249767099519693,0.171741905460804,0.0780834043170018 +"64",94,12,13941.5348931821,0.124837037125473,2873.61271217294,6723,0.357146030748015,812498.070726829,2273642.89352682,0.253930253072883,0.215314985383712,0.0940138655133364 +"65",94,13,14390.2818176616,0.106680021316234,3054.12384669056,2237,0.411786420833734,905274.07381949,2260176.05113773,0.378629532017611,0.262028159608299,0.101916486643483 +"66",95,1,188157.26820099,0.417348299146465,2324.59086837656,1036,0.156672596284344,1120879.59171672,7600682.4701224,0.188088000796105,0.163847168046029,0.0641712182569559 +"67",95,2,83922.4219148478,0.3464081856272,2089.46287080575,1287,0.175513338168998,1088448.51725455,5889820.29705045,0.257851247770301,0.160187775918034,0.0786013533202956 +"68",95,3,55633.3803882601,0.275522457408013,2324.37012748258,4478,0.223131818927903,1018785.17672473,4540076.09571775,0.235211124028,0.146247831561702,0.0629392102493774 +"69",95,4,54242.4456594103,0.27222433614323,2536.23856671759,4789,0.244184407902298,999313.690775078,4275420.59510442,0.221960902832515,0.186270741190616,0.0765798612443759 +"70",95,5,38146.3474119888,0.22919140259522,2444.9443767663,1979,0.244262483253373,951043.844191169,3896107.97913831,0.298078987391546,0.202148110648431,0.105222910141105 +"71",95,6,38023.9952896972,0.230409676929071,2698.13951350684,4500,0.268773741639428,956814.079744994,3572313.55259191,0.225413020383356,0.140767376658627,0.0571737712782515 +"72",95,7,36870.2525567452,0.22304293120008,2666.60154138254,679,0.33584628562562,1012139.88737748,2994524.81573542,0.386594379061506,0.283769787426321,0.119765973806835 +"73",95,8,63734.8486538677,0.300435250788149,2101.42832852206,1050,0.218561000800715,1009471.513657,4249041.9640525,0.318229923569794,0.12598090495569,0.0842875725017546 +"74",95,9,27853.0397071804,0.181640171620669,2717.34151957392,1271,0.273094367120616,974035.432984654,3724117.50311763,0.162899979167995,0.160328001131332,0.0771781799438257 +"75",95,10,22331.1116461006,0.168599971934671,2579.38057736359,2970,0.309170012791564,936426.751864181,3148559.11299907,0.235755365785572,0.131122778929242,0.0600655518911182 +"76",95,11,14760.0415329031,0.115448709165119,2748.58238080477,5058,0.321410773879918,977585.702076226,3054477.53546771,0.284707626805456,0.196184357707104,0.107490536680206 +"77",95,12,15408.7522126387,0.126126602633633,2833.04946242391,6668,0.350762409007423,862227.887455045,2459278.69212324,0.237208874563063,0.194321745068794,0.0777771125122299 +"78",95,13,14809.0070137044,0.108368475367651,2934.42072810831,2241,0.41117576850319,964799.888871145,2434072.92145625,0.378404223613303,0.280519129409051,0.113766808895469 +"79",96,1,217367.38740377,0.430461998242018,2447.56245760726,989,0.161320587810253,1215488.57497905,8261327.00616585,0.169152712057379,0.155205288514993,0.0790576826704925 +"80",96,2,91682.4792008118,0.318837969640697,2375.83387980089,1298,0.187801511918441,1211040.13334985,6680683.71142005,0.227853766051419,0.181085136629407,0.0811230273591586 +"81",96,3,61380.6085923271,0.271805399214946,2352.20562842751,4448,0.22235775668804,1129098.68026044,5173695.80277408,0.241922055167816,0.150881591782448,0.0602591426785946 +"82",96,4,58194.0126506874,0.255980302465098,2453.49370162367,4824,0.230820641395303,1092372.34261476,4804327.87676105,0.21869793587281,0.17430616161304,0.0760928336234312 +"83",96,5,39010.6683670169,0.221556476925185,2518.48486621247,1935,0.249796195397793,1102260.83941629,4553672.39760591,0.331282552014433,0.217488444843888,0.0790279528256741 +"84",96,6,40446.4971467023,0.210403124843026,2712.58146247963,4480,0.259480984304581,966919.487263708,3765348.54013651,0.203687704667842,0.143372078168837,0.0824571101418793 +"85",96,7,43957.7508040561,0.220814748181957,2822.08921505135,676,0.322640662755842,1057735.11595858,3161088.54669072,0.347735283409436,0.251206799573353,0.122309360376813 +"86",96,8,72984.9016973311,0.303172771697181,2467.83171358561,1040,0.257388617559574,1127919.91717438,4709785.03666814,0.358643106659308,0.160849888112872,0.0642967939569348 +"87",96,9,32880.8460527474,0.18012743391555,2846.62633876437,1249,0.267631190433523,1047360.29924452,4201168.56759614,0.150505872044896,0.144771286829169,0.0891507861849952 +"88",96,10,25630.7545162558,0.179468481304837,2604.04650371197,2986,0.302835926404653,1037770.6706408,3587728.06371643,0.223756383756574,0.170662527248198,0.0631259911684197 +"89",96,11,15962.7573628209,0.117512060199754,2757.9540044176,5079,0.32333088865103,1076798.35802591,3456030.99155059,0.302875467977239,0.194041947124781,0.0995576800829416 +"90",96,12,17055.911558795,0.127664451532515,2765.99722662171,6613,0.342250608960593,935518.300071363,2754268.28949649,0.259533386894674,0.179545989342842,0.0723163411388763 +"91",96,13,16601.1399415345,0.113396087877949,2996.68215705517,2235,0.377520211279662,1069149.3966338,2801346.5437311,0.41482526446172,0.290870156536146,0.134860107999842 +"92",97,1,287291.633188936,0.468561960949135,2375.16535859272,1016,0.154143648249629,1565919.530208,10909564.7831002,0.158095971314292,0.195357535164629,0.0755626148404651 +"93",97,2,107483.914551582,0.328882574843086,2170.93976246213,1385,0.195030600672384,1561336.2431049,8491833.10797331,0.30588807538789,0.18537961689642,0.0757589166181419 +"94",97,3,74151.0600244173,0.27900697626983,2231.49375734772,4699,0.228714911163808,1473595.83892761,6834742.23115729,0.339601808846541,0.179989801723482,0.0706280475817841 +"95",97,4,69491.2156734525,0.260826016633106,2403.68533940626,5349,0.242030250344315,1451464.99010635,6452731.17901025,0.312762395227266,0.200197095068077,0.0881011617076723 +"96",97,5,49788.6870716753,0.230590235469782,2396.85665094202,1911,0.251081942390975,1401164.57562662,5792726.00673642,0.365769338390962,0.218418565700465,0.0920818749048355 +"97",97,6,49867.0643089091,0.219643066210661,2517.73949829508,5147,0.262332444619331,1326919.38485742,5270545.43551996,0.270027540474625,0.157845392194212,0.0683751495172678 +"98",97,7,54496.050980309,0.241341150505558,2655.41812465557,801,0.307500893843062,1433266.52562629,4389561.86159966,0.47396106869092,0.305883480674726,0.171774388921686 +"99",97,8,76558.9215128173,0.282938803469557,2287.91419569063,1032,0.26893388605095,1399675.71077275,5782209.7420428,0.326607835921932,0.201778356469895,0.0775004215377216 +"100",97,9,37837.0562771401,0.180975974865664,2674.82440124596,1211,0.25959078591555,1333099.36597748,5660411.13450331,0.280941912077345,0.162688391666536,0.0697183884201241 +"101",97,10,32068.6154958868,0.191313547794939,2422.27193555496,2757,0.306071175122874,1278184.13675132,4442529.02009633,0.255471328577266,0.185397949601222,0.0775344542391091 +"102",97,11,19928.4047692746,0.112575462386334,2653.47227285254,4852,0.310814625799068,1340859.47700716,4424126.13124184,0.319098961705628,0.165173327087477,0.0830891158474389 +"103",97,12,21275.3145887517,0.132934712516731,2660.03786541325,6469,0.348833125805584,1198032.00810319,3599631.96949974,0.318683094746745,0.193009389222324,0.083598822587155 +"104",97,13,20025.2475280793,0.120297294180713,2619.40829437034,2216,0.364065892862714,1428703.09267672,3842349.79631238,0.507207060170148,0.309120918643843,0.154844107352391 +"105",98,1,371203.842237278,0.484621360265368,2178.78334076644,1105,0.143919458719065,2183561.1674862,15832709.2976244,0.228976726477674,0.180698897193447,0.0680428720817463 +"106",98,2,153187.599880172,0.351003649797755,2112.06726908078,1309,0.188214459329258,2170087.88908653,11788807.9978658,0.328361068260818,0.211971156641073,0.0959320114556486 +"107",98,3,100887.079834228,0.294497759477468,2100.63228485784,4606,0.226528356456473,2119221.15341172,9641995.78199621,0.373342609110797,0.209348032050113,0.0846543773891408 +"108",98,4,88592.5819555351,0.268520072181448,2433.01644339272,5195,0.259308207660897,2095131.66559807,9006391.75755093,0.387151827081895,0.244454801642458,0.118565140642728 +"109",98,5,62037.8042956327,0.245199249305414,2504.30096160667,1704,0.259843425747581,1996609.43550289,8139728.54430183,0.459882472972663,0.241615751095102,0.114994877608342 +"110",98,6,67310.3336090217,0.224906163542009,2517.738009547,4789,0.267135706717772,1998796.5442054,8042045.39534542,0.385859157409102,0.207950663355421,0.146291869047274 +"111",98,7,66233.3356805107,0.229732815884719,2623.49042613942,841,0.330987295533842,2249434.88066703,6670132.08352521,0.563253342650885,0.350127370688679,0.162523273727988 +"112",98,8,112237.6393971,0.311217899454242,2202.91286973847,1014,0.259156526848823,1995279.57709644,7952872.49707557,0.301761711696887,0.189502817480907,0.0748032247010391 +"113",98,9,51191.2688207443,0.185701299386166,2589.97487462815,1149,0.262154207967527,1952602.23526622,8534893.71807037,0.337717857121127,0.196685973426109,0.110027246018991 +"114",98,10,45756.4370277792,0.226031962102687,2353.6405631417,2549,0.298762270764769,1911057.97184757,6601210.10872662,0.382899784284396,0.220825549362805,0.0966723299533979 +"115",98,11,24653.4166859877,0.126391219904301,2610.80827875432,4598,0.333210042767609,1970984.66868915,6396566.49402268,0.448511584223342,0.216215575537966,0.12488429761025 +"116",98,12,27886.7209140899,0.138632761347054,2573.44480530351,6457,0.346036395483991,1842375.20033178,5565366.88854905,0.501078740003916,0.235839012503911,0.114606062007092 +"117",98,13,26739.295114887,0.125914707963194,2641.07286119034,2285,0.390209157313732,2074573.30527925,5667034.24530935,0.581936382178885,0.337028839340628,0.17086030981019 diff --git a/R/Archive/August 2020/Food Grams.R b/R/Archive/August 2020/Food Grams.R new file mode 100644 index 00000000..86ace389 --- /dev/null +++ b/R/Archive/August 2020/Food Grams.R @@ -0,0 +1,49 @@ +#163- Step 3.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Food Grams =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodNonDurable.rda")) + + + #FoodGrams[FoodGrams == 0] <- NA + FoodGrams<-TotalFoodNonDurable[,.(HHID,LavashGram,TaftoonGram,BarbariGram, + Bread_FantasyGram,Rice_TaromGram, + Rice_AshGram,Rice_Khareji2Gram, + Rice_DomsiahGram,AdasGram,Loobia_ChitiGram, + Loobia_GhermezGram,NokhodGram,Sabzi_KhordanGram, + Sabzi_AshGram,KahooGram,KhiarGram, + Banana_CoconutGram,OrangeGram,CherryGram, + AppleGram,CowMeatGram,SheepMeatGram, + Fish_North_FreshGram,Fish_South_FreshGram, + Fish_ConservedGram,Cheese_PasturizedGram, + Cheese_NonPasturizedGram,Oil_AnimalGram, + Oil_NabatiGram,Butter_Animal_PasturizedGram, + Butter_NonAnimalGram,KeshmeshGram, + NokhodchiGram,PistachioGram,TokhmeGram, + GhandGram,ShekarGram)] + save(FoodGrams,file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodGrams.rda")) + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/August 2020/Gini.R b/R/Archive/August 2020/Gini.R new file mode 100644 index 00000000..91be85ed --- /dev/null +++ b/R/Archive/August 2020/Gini.R @@ -0,0 +1,64 @@ +#Gini Coefficient.R +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(acid) +library(DescTools) +Gini <- data.table(Year=NA_integer_,Gini_Income=NA_integer_,Gini_Exp=NA_integer_,Decile=NA_integer_)[0] +Pop <- data.table(Year=NA_integer_,Pop=NA_integer_,ProvinceCode=NA_integer_)[0] + + +year<-97 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + IncomeTable<-as.data.table(IncomeTable) + MD<-as.data.table(MD) + + IncomeTable<-merge(IncomeTable,MD[,.(HHID,EqSizeOECD,Weight,Total_Exp_Month_Per,Size,Decile)],by=c("HHID"),all.x = TRUE) + + + IncomeTable<-IncomeTable[,TotalIncome_Per:=NetIncome/EqSizeOECD] + IncomeTable<-IncomeTable[!is.na(Weight)] + g<-IncomeTable[,weighted.gini(TotalIncome_Per,Weight)] + + print(IncomeTable[,weighted.gini(TotalIncome_Per,Weight*Size)]) + print(IncomeTable[,weighted.gini(Total_Exp_Month_Per,Weight*Size)]) + X1 <- IncomeTable[,.(Gini_Income=weighted.gini(TotalIncome_Per,Weight*Size), + Gini_Exp=weighted.gini(Total_Exp_Month_Per,Weight*Size)),by=c("Decile")] + + + X1[,Year:=year] + + Gini <- rbind(Gini,X1) + Gini<-Gini[,.(Gini_Income=mean(as.numeric(Gini_Income)), + Gini_Exp=mean(as.numeric(Gini_Exp))),by=.(Year,Decile)] + + X2 <- IncomeTable[,.(Pop=sum(Size*Weight))] + X2[,Year:=year] + + + #write.csv(Pop,file = "Pop.csv") +} + +#Final_Dataset <- read_excel("C:/Users/pc1/Desktop/MRC fall 98/Dataset/Final Dataset.xlsx", sheet = "Sheet4") +#Final_Dataset<-as.data.table(Final_Dataset) +#Final_Dataset2<-Final_Dataset[,weighted.mean(Woman_Contribution,Pop),by=.(Year)] + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/August 2020/High Exp.R b/R/Archive/August 2020/High Exp.R new file mode 100644 index 00000000..0d677f48 --- /dev/null +++ b/R/Archive/August 2020/High Exp.R @@ -0,0 +1,97 @@ + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ High Exp =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +year<-98 + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoors.rda")) +MD[,Decile:=NULL] +MD[,Percentile:=NULL] +MD<-merge(MD,Deciles,by="HHID") + +R10<-MD[Total_Exp_Month>50000000] +R10[,sum(Weight)] +R10[,weighted.mean(Size,Weight)] +R10_Ostan<-R10[,.(Weight10=sum(Weight),Size10=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R9<-MD[Total_Exp_Month>40000000 & Total_Exp_Month<50000000] +R9[,sum(Weight)] +R9[,weighted.mean(Size,Weight)] +R9_Ostan<-R9[,.(Weight9=sum(Weight),Size9=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R8<-MD[Total_Exp_Month>30000000 & Total_Exp_Month<40000000] +R8[,sum(Weight)] +R8[,weighted.mean(Size,Weight)] +R8_Ostan<-R8[,.(Weight8=sum(Weight),Size8=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R7<-MD[Total_Exp_Month>22500000 & Total_Exp_Month<30000000] +R7[,sum(Weight)] +R7[,weighted.mean(Size,Weight)] +R7_Ostan<-R7[,.(Weight7=sum(Weight),Size7=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R6<-MD[Total_Exp_Month>16250000 & Total_Exp_Month<22500000] +R6[,sum(Weight)] +R6[,weighted.mean(Size,Weight)] +R6_Ostan<-R6[,.(Weight6=sum(Weight),Size6=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R5<-MD[Total_Exp_Month>13750000 & Total_Exp_Month<16250000] +R5[,sum(Weight)] +R5[,weighted.mean(Size,Weight)] +R5_Ostan<-R5[,.(Weight5=sum(Weight),Size5=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R4<-MD[Total_Exp_Month>10000000 & Total_Exp_Month<13750000] +R4[,sum(Weight)] +R4[,weighted.mean(Size,Weight)] +R4_Ostan<-R4[,.(Weight4=sum(Weight),Size4=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R3<-MD[Total_Exp_Month>8333333 & Total_Exp_Month<10000000] +R3[,sum(Weight)] +R3[,weighted.mean(Size,Weight)] +R3_Ostan<-R3[,.(Weight3=sum(Weight),Size3=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R2<-MD[Total_Exp_Month>6250000 & Total_Exp_Month<8333333] +R2[,sum(Weight)] +R2[,weighted.mean(Size,Weight)] +R2_Ostan<-R2[,.(Weight2=sum(Weight),Size2=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + +R1<-MD[Total_Exp_Month<6250000] +R1[,sum(Weight)] +R1[,weighted.mean(Size,Weight)] +R1_Ostan<-R1[,.(Weight1=sum(Weight),Size1=weighted.mean(Size,Weight)), + by=c("ProvinceName","ProvinceCode")] + + +Data<-merge(R10_Ostan,R9_Ostan,by=c("ProvinceName","ProvinceCode")) +Data<-merge(Data,R8_Ostan,by=c("ProvinceName","ProvinceCode")) +Data<-merge(Data,R7_Ostan,by=c("ProvinceName","ProvinceCode")) +Data<-merge(Data,R6_Ostan,by=c("ProvinceName","ProvinceCode")) +Data<-merge(Data,R5_Ostan,by=c("ProvinceName","ProvinceCode")) +Data<-merge(Data,R4_Ostan,by=c("ProvinceName","ProvinceCode")) +Data<-merge(Data,R3_Ostan,by=c("ProvinceName","ProvinceCode")) +Data<-merge(Data,R2_Ostan,by=c("ProvinceName","ProvinceCode")) +Data<-merge(Data,R1_Ostan,by=c("ProvinceName","ProvinceCode")) + + + + + + diff --git a/R/Archive/August 2020/Income Calculations.R b/R/Archive/August 2020/Income Calculations.R new file mode 100644 index 00000000..4a39bc85 --- /dev/null +++ b/R/Archive/August 2020/Income Calculations.R @@ -0,0 +1,81 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculations =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodCon.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durables.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"PubWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"PrvWages.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BussIncome.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"AgriWages.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"AidWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"HomemadeWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"InterestWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"IntraWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"OtherIncome.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"RentWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"RetirementWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) + + Data<-merge(MD[,.(HHID,Region,ProvinceCode,Size,EqSizeOECD,Weight,Total_Exp_Month_Per,Total_Exp_Month)],Deciles + ,by="HHID",all.x = TRUE) + Data<-merge(Data,PubWageData[,.(HHID,PubWageNetIncomeY)],by="HHID",all.x = TRUE) + Data<-merge(Data,PrvWageData[,.(HHID,PrvWageNetIncomeY)],by="HHID",all.x = TRUE) + Data<-merge(Data,BussIncomeData[,.(HHID,BussNetIncomeY)],by="HHID",all.x = TRUE) + Data<-merge(Data,AgriIncomeData[,.(HHID,AgriNetIncomeY)],by="HHID",all.x = TRUE) + Data<-merge(Data,AidWageData[,.(HHID,aid)],by="HHID",all.x = TRUE) + Data<-merge(Data,HomemadeWageData[,.(HHID,homemade)],by="HHID",all.x = TRUE) + Data<-merge(Data,InterestWageData[,.(HHID,interest)],by="HHID",all.x = TRUE) + Data<-merge(Data,IntraWageData[,.(HHID,intra)],by="HHID",all.x = TRUE) + Data<-merge(Data,RentWageData[,.(HHID,rent)],by="HHID",all.x = TRUE) + Data<-merge(Data,RetirementWageData[,.(HHID,retirement)],by="HHID",all.x = TRUE) + Data<-merge(Data,SubsidyWageData[,.(HHID,Subsidy)],by="HHID",all.x = TRUE) + + + Data[is.na(Data)] <- 0 + Data[,Income_HH:=(PubWageNetIncomeY+PrvWageNetIncomeY+BussNetIncomeY+AgriNetIncomeY+ + aid+homemade+interest+intra+rent+retirement+Subsidy)/12] + Data[,Income_Per:=Income_HH/EqSizeOECD] + + a1<- Data[,weighted.mean(Income_Per,Weight)] + a1<- as.data.table(a1) + b1<- Data[,weighted.mean(Income_Per,Weight),by=Region] + c1<- Data[,weighted.mean(Income_Per,Weight),by=Decile][order(Decile)] + + a2<- Data[,weighted.mean(Total_Exp_Month_Per,Weight)] + a2<- as.data.table(a2) + b2<- Data[,weighted.mean(Total_Exp_Month_Per,Weight),by=Region] + c2<- Data[,weighted.mean(Total_Exp_Month_Per,Weight),by=Decile][order(Decile)] + + cat(Data[,weighted.mean(Income_HH,Weight)],"\t") + cat(Data[,weighted.mean(Total_Exp_Month,Weight)]) +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/IncomePoverty.R b/R/Archive/August 2020/IncomePoverty.R new file mode 100644 index 00000000..47508ed1 --- /dev/null +++ b/R/Archive/August 2020/IncomePoverty.R @@ -0,0 +1,184 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +library(writexl) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalProvinceResults <- data.table(Year=NA_integer_,ProvinceName=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +year<-95 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS_Engle.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) + + MD<-merge(MD,IncomeTable[,.(HHID,NetIncome)],by=c("HHID"),all.x = TRUE) + + + # MD<-MD[Region=="Urban"] + + # EngleD<- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + # TOriginalFoodExpenditure_Per<1.2*FPLine, + # .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month_nondurable,Weight), + # FPLine=mean(FPLine)),by=.(Region,cluster3)] + + + # EngleD[,EngleFinal:=mean(EngleFinal)] + EngleD[,PovertyLine:=FPLine/EngleFinal] + EngleD[,PovertyLine2:=FPLine/Engel0] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,PovertyLine2,Engel)],by=c("Region","cluster3")) +MD<-MD[,NetIncome:=NetIncome/(EqSizeOECD*12)] + MD[,FinalPoor:=ifelse(NetIncome < PovertyLine,1,0 )] + MD[,FinalPoor2:=ifelse(NetIncome < PovertyLine2,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + ################Province################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by="ProvinceName"] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by="ProvinceName"] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","ProvinceName")) + FinalProvinceResults <- rbind(FinalProvinceResults,X) + + #################################################### + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + cat(MD[, weighted.mean(FinalPoor2,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + cat(MD[, weighted.mean(FPLine,Weight*Size)],"\t") + #cat(MD[, sum(Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + MD[, weighted.mean(FinalPoor,Weight*Size)] + MD[, weighted.mean(FinalPoor,Weight*Size),by=Region] + MD[, weighted.mean(FinalPoor,Weight*Size),by=cluster3] + MD[,weighted.mean(FinalPoor,Weight),by=ProvinceName][order(ProvinceName)] + + + DurableD<- MD[ Total_Exp_Month_Per_nondurable>0.8*PovertyLine & + Total_Exp_Month_Per_nondurable<1.2*PovertyLine, + .(.N,Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight), + PovertyLine=mean(PovertyLine)), + by=.(Region,cluster3)] + + DurableD[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + MD <- merge(MD,DurableD[,.(cluster3,Region,PovertyLine_Final)],by=c("Region","cluster3")) + + # cat(MD[, weighted.mean(PovertyLine_Final,Weight*Size)]) + MD[FinalPoor==1,weighted.mean(Total_Exp_Month_Per,Weight)] + MD[FinalPoor==1,weighted.mean(Total_Exp_Month_Per,Weight),by=Region] + + # cat(MD[Decile==3, weighted.mean(FoodKCaloriesHH_Per,Weight*Size)]) + # cat(MD[Decile==2, weighted.mean(FoodKCaloriesHH_Per,Weight*Size)]) +} +write_xlsx(FinalClusterResults,path="ClusterResultsI.xlsx",col_names=T) +write_xlsx(FinalCountryResults,path="CountryResultsI.xlsx",col_names=T) +write_xlsx(FinalRegionResults,path="RegionResultsI.xlsx",col_names=T) + +pop<-MD[,sum(.N),by=c("Decile","cluster3")] + +#ggplot(FinalClusterResults)+ +# geom_line(mapping = aes(x=Year,y=PovertyHCR,col=factor(cluster3),linetype=factor(cluster3))) +#write.csv(FinalClusterResults,file = "FinalClusterResults.csv") + +#z2<-MD[,.(HHID,Decile,Added,Added1,Added2,Added3,Added4,Added5, +# Added6,Added7,Added8,computer,Added9,Added10,Added11)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/Job distribution.R b/R/Archive/August 2020/Job distribution.R new file mode 100644 index 00000000..e24e8446 --- /dev/null +++ b/R/Archive/August 2020/Job distribution.R @@ -0,0 +1,117 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Job distribution =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) + +year<-98 +#for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + T2<-Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy, + Job_Main_Code_Pub,Job_Original_Code_Pub, + Job_Main_Code_Cooperative,Job_Original_Code_Cooperative, + Job_Main_Code_Prv,Job_Original_Code_Prv, + Job_Main_Code_Buss,Job_Original_Code_Buss, + Job_Main_Code_Agri,Job_Original_Code_Agri)] + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy, + Job_Main_Code_Pub,Job_Original_Code_Pub, + Job_Main_Code_Cooperative,Job_Original_Code_Cooperative, + Job_Main_Code_Prv,Job_Original_Code_Prv, + Job_Main_Code_Buss,Job_Original_Code_Buss, + Job_Main_Code_Agri,Job_Original_Code_Agri, + Retirement,Aid,Homemade,Rent,Interest,Intra)],by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + +MD[,Other_Income:=max(Retirement,Aid,Homemade,Rent,Interest,Intra),by="HHID"] +MD[,Other_Income_Code:=ifelse(Other_Income>0,0.5,0),by="HHID"] + +MD[,Job_Code:=max(Job_Main_Code_Pub,Job_Main_Code_Cooperative,Job_Main_Code_Prv, + Job_Main_Code_Buss,Job_Main_Code_Agri,Other_Income_Code),by="HHID"] +MD[,Job_Code:=ifelse(Job_Code==0,0.5,Job_Code)] + +T3<-MD[,.(Job_Main_Code_Pub,Job_Main_Code_Cooperative,Job_Main_Code_Prv, + Job_Main_Code_Buss,Job_Main_Code_Agri,Other_Income_Code,Job_Code)] + +A<-T3[Job_Code>0] + +MD[,Category:=ifelse(Job_Main_Code_Pub>0,"Pub", + ifelse(Job_Main_Code_Prv>0,"Prv", + ifelse(Job_Main_Code_Buss>0 | Job_Main_Code_Agri>0, + "Buss","Other")))] + +MD[,weighted.mean(Job_Code==9,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Job_Main_Code_Pub>0,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Job_Main_Code_Prv>0,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Job_Main_Code_Buss>0,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Job_Main_Code_Agri>0,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Other_Income_Code>0,Weight),by=Decile][order(Decile)] + +MD[,HH_Decile:=sum(Weight),by=Decile] + +x1<-MD[Decile==1,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"]#[order("Category")] +x2<-MD[Decile==2,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x3<-MD[Decile==3,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x4<-MD[Decile==4,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x5<-MD[Decile==5,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x6<-MD[Decile==6,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x7<-MD[Decile==7,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x8<-MD[Decile==8,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x9<-MD[Decile==9,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x10<-MD[Decile==10,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] + + +y1<-MD[Decile==1,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"]#[order("Job_Code")] +y2<-MD[Decile==2,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y3<-MD[Decile==3,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y4<-MD[Decile==4,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y5<-MD[Decile==5,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y6<-MD[Decile==6,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y7<-MD[Decile==7,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y8<-MD[Decile==8,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y9<-MD[Decile==9,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y10<-MD[Decile==10,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +#} + + +Sale<-MD[Job_Original_Code_Prv==52 | Job_Original_Code_Buss==52] + +Sale[,sum(HIndivNo),by=Decile][order(Decile)] +Sale[,sum(HIndivNo*Weight),by=Decile][order(Decile)] + +x1<-Sale[Decile==1,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"]#[order("Category")] +x2<-Sale[Decile==2,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x3<-Sale[Decile==3,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x4<-Sale[Decile==4,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x5<-Sale[Decile==5,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x6<-Sale[Decile==6,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x7<-Sale[Decile==7,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x8<-Sale[Decile==8,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x9<-Sale[Decile==9,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x10<-Sale[Decile==10,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/August 2020/PoorFeatures.R b/R/Archive/August 2020/PoorFeatures.R new file mode 100644 index 00000000..546ad44b --- /dev/null +++ b/R/Archive/August 2020/PoorFeatures.R @@ -0,0 +1,120 @@ + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(data.table) +library(ggplot2) +library(dplyr) +library(data.table) +library(stringr) +library(readxl) +library(spatstat) +library(writexl) +library(tidyr) +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + +goosht<-BigFData[FoodType=="Goosht"] +goosht<-goosht[,Goosht_Grams:=FGrams ] +morgh<-BigFData[FoodType=="Morgh"] +morgh<-morgh[,Morgh_Grams:=FGrams ] +mive<-BigFData[FoodType=="Mive"] +mive<-mive[,Mive_Grams:=FGrams ] +nan<-BigFData[FoodType=="Nan"] +nan<-nan[,Nan_Grams:=FGrams ] +sibzamini<-BigFData[FoodType=="Sibzamini"] +sibzamini<-sibzamini[,Sibzamini_Grams:=FGrams ] +makarooni<-BigFData[FoodType=="Makarooni"] +makarooni<-makarooni[,Makarooni_Grams:=FGrams ] +berenj<-BigFData[FoodType=="Berenj"] +berenj<-berenj[,Berenj_Grams:=FGrams ] +hoboobat<-BigFData[FoodType=="Hoboobat"] +hoboobat<-hoboobat[,Hoboobat_Grams:=FGrams ] +sabzi<-BigFData[FoodType=="Sabzi"] +sabzi<-sabzi[,Sabzi_Grams:=FGrams ] +roghan<-BigFData[FoodType=="Roghan"] +roghan<-roghan[,Roghan_Grams:=FGrams ] +ghand<-BigFData[FoodType=="Ghand"] +ghand<-ghand[,Ghand_Grams:=FGrams ] +shir<-BigFData[FoodType=="Shir"] +shir<-shir[,Shir_Grams:=FGrams ] +panir<-BigFData[FoodType=="Panir"] +panir<-panir[,Panir_Grams:=FGrams ] +mast<-BigFData[FoodType=="Mast"] +mast<-mast[,Mast_Grams:=FGrams ] +tokhmemorgh<-BigFData[FoodType=="Tokhmemorgh"] +tokhmemorgh<-tokhmemorgh[,Tokhmemorgh_Grams:=FGrams ] +mahi<-BigFData[FoodType=="Mahi"] +mahi<-mahi[,Mahi_Grams:=FGrams ] + +MD<-merge(MD,goosht[,.(HHID,Goosht_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,morgh[,.(HHID,Morgh_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,mive[,.(HHID,Mive_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,nan[,.(HHID,Nan_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,sibzamini[,.(HHID,Sibzamini_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,makarooni[,.(HHID,Makarooni_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,berenj[,.(HHID,Berenj_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,hoboobat[,.(HHID,Hoboobat_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,sabzi[,.(HHID,Sabzi_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,roghan[,.(HHID,Roghan_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,ghand[,.(HHID,Ghand_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,shir[,.(HHID,Shir_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,panir[,.(HHID,Panir_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,mast[,.(HHID,Mast_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,tokhmemorgh[,.(HHID,Tokhmemorgh_Grams)],by=c("HHID"),all.x = T) +MD<-merge(MD,mahi[,.(HHID,Mahi_Grams)],by=c("HHID"),all.x = T) + +MD<-MD[,Labaniat_Grams:=Shir_Grams+Mast_Grams] + + +gram <-MD [FinalPoor==1, + .(Nan_Grams= weighted.mean(Nan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Berenj_Grams= weighted.mean(Berenj_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Makarooni_Grams=weighted.mean(Makarooni_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Hoboobat_Grams=weighted.mean(Hoboobat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Sibzamini_Grams=weighted.mean(Sibzamini_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Sabzi_Grams=weighted.mean(Sabzi_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Mive_Grams=weighted.mean(Mive_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Goosht_Grams=weighted.mean(Goosht_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Morgh_Grams=weighted.mean(Morgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Tokhmemorgh_Grams=weighted.mean(Tokhmemorgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Labaniat_Grams=weighted.mean(Labaniat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Roghan_Grams=weighted.mean(Roghan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Ghand_Grams=weighted.mean(Ghand_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Mahi_Grams=weighted.mean(Mahi_Grams/EqSizeCalory,Weight*Size,na.rm = TRUE), + Panir_Grams=weighted.mean(Panir_Grams/EqSizeCalory,Weight*Size,na.rm = TRUE), + Calory=weighted.mean(FoodKCaloriesHH_Per,Weight*Size,na.rm = TRUE), + Hygiene=weighted.mean(Hygiene_Exp/EqSizeOECD,Weight*Size), + Medical=weighted.mean(Medical_Exp/EqSizeOECD,Weight*Size), + Cloth=weighted.mean(Cloth_Exp/EqSizeOECD,Weight*Size), + Education=weighted.mean(Education_Exp/EqSizeOECD,Weight*Size)),by=c("cluster3")] + +Gram<-gram[,Year:=year] +if (year==90){ + PoorFeature<-Gram +}else{ +PoorFeature<-rbind(Gram,PoorFeature) +} +} + PoorFeature<- PoorFeature[,Year:=as.factor(Year)] + PoorFeature<- PoorFeature[,cluster3:=as.factor(cluster3)] + + +ggplot(data=PoorFeature,aes(x=Year, y=Goosht_Grams, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Berenj_Grams, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Makarooni_Grams, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Sibzamini_Grams, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Nan_Grams, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Morgh_Grams, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Calory, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Hygiene, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Cloth, group=cluster3, colour=cluster3))+geom_line() +ggplot(data=PoorFeature,aes(x=Year, y=Education, group=cluster3, colour=cluster3))+geom_line() diff --git a/R/Archive/August 2020/PoorPanel.R b/R/Archive/August 2020/PoorPanel.R new file mode 100644 index 00000000..75fc082b --- /dev/null +++ b/R/Archive/August 2020/PoorPanel.R @@ -0,0 +1,301 @@ + + + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +year<-97 + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + inflation <- as.data.table(read_excel("~/GitHub/IRHEIS/Data/ProvinceCPI.xlsx", + sheet = "Province")) + I<-inflation[Year==year] + C<-MD[,.(HHID,cluster3,EqSizeCalory)] +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Specific.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Job.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) +MD<-merge(BigFData,MD,by=c("HHID"),all.x = T) +MD<-MD[FinalPoor=1] +Calory<-MD[,weighted.mean(FoodKCaloriesHH_Per,Weight*Size),by=c("ProvinceCode")] +MD<-merge(MD,FoodNames,by=c("FoodType"),all.x = T) +base<-MD[,weighted.mean(FGrams/EqSizeCalory*KCalories,Weight*Size),by=c("ProvinceName","FoodType")] + +base<-MD[,fcalory:=FGrams*KCalories/EqSizeCalory] +base<-base[,weighted.mean(V1,Weight*Size),by=c("ProvinceName","FoodType")] +s<-base[,sum(V1),by=c("ProvinceName")] + +MD<-MD[,foodpoor:=ifelse(FoodKCaloriesHH0 | NDabestan>0 | NRahnamayi>0 | NPish>0 | KelasKonkoor>0] +Dabestan<-Dabestan[,Enrollment:=Enrollment_Dabirestan_G+Enrollment_Dabirestan_NG+Enrollment_Dabirestan_Shabane+ + Enrollment_Dabestan_G+Enrollment_Dabestan_NG+Enrollment_Rahnamayi_G+Enrollment_Rahnamayi_NG+ + Enrollment_pish_G+Enrollment_pish_NG+Enrollment_Rahnamayi_Shabane+Enrollment_pish_Shabane+ + KelasKonkoor] +Dabestan<-MD[NDabestan>0] +Dabestan<-Dabestan[,enrol:=Enrollment_Dabestan_NG/NDabestan] +female<-MD[Size>1] + +female<-female[,female:=ifelse(HSex=="Female",1,0)] +female<-female[,weighted.mean(female,Weight*Size,na.rm = T),by=c("ProvinceName","FinalPoor")] +Dabestan2<-Dabestan[,weighted.mean(enrol/Total_Exp_Month_Per,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan2<-MD[,weighted.mean(Enrollment_Rahnamayi_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan3<-MD[,weighted.mean(Enrollment_Rahnamayi_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan4<-MD[,weighted.mean(Enrollment_Dabirestan_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan5<-MD[,weighted.mean(Enrollment_Dabirestan_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan6<-MD[,weighted.mean(KelasKonkoor,Weight*Size),by=c("ProvinceName","FinalPoor")] + +edu<-as.data.table(cbind(Dabestan1$ProvinceName,Dabestan1$FinalPoor,Dabestan1$V1, + Dabestan2$V1)) + +tooth<-MD[,weighted.mean(tooth_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +tooth<-MD[,weighted.mean(tooth_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] + +visit<-MD[,weighted.mean(Visit_Omoomi_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit1<-MD[,weighted.mean(Visit_Omoomi_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit2<-MD[,weighted.mean(Visit_Motekhases_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit3<-MD[,weighted.mean(Visit_Motekhases_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit4<-MD[,weighted.mean(Visit_Mama_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit5<-MD[,weighted.mean(Visit_Mama_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit<-as.data.table(cbind(visit$ProvinceName,visit$FinalPoor,visit$V1,visit1$V1, + visit2$V1,visit3$V1,visit4$V1,visit5$V1)) + +phd<-MD[,weighted.mean(NPhD+NMasters+NBachelors,Weight*Size),by=c("ProvinceName")] +inflation<-inflation[Year==year] +cpi<-inflation$CPI +cpi<-as.numeric(cpi) +MD<-MD[,Medical_Exp1:=Medical_Exp/cpi] +MD<-MD[,Medical_Exp:=Medical_Exp1/EqSizeOECD] +MD<-MD[,Total_Exp_Month1:=Total_Exp_Month/cpi] +MD<-MD[,Total_Exp_Month:=Total_Exp_Month1/EqSizeOECD] +MD<-MD[,Durable_Exp1:=Durable_Exp/cpi] +MD<-MD[,Durable_Exp:=Durable_Exp1/EqSizeOECD] +MD<-merge(MD,MD1,by=c("HHID")) +MD<-merge(MD,C,by=c("HHID")) +MD<-MD[FinalPoor==1] +MD<-MD[,poverty_R:=weighted.mean(Total_Exp_Month,Weight*Size)] +MD<-MD[!is.na(Area)] +MD<-MD[,House_PL:=Size*10] +MD<-MD[,HousePoor:=ifelse(Area=6,.(HHID,Age,Literate,Student)] + P1<-P1[Literate==TRUE | Literate==FALSE] + P1<-P1[,Lit:=ifelse(Literate==FALSE | Student==FALSE,100,1)] + P<-P1[,lapply(.SD,sum),by="HHID"] + P<-P[,Knowledge:=ifelse(Lit>=100,0,1)] + MD<-merge(MD,P[,.(HHID,Knowledge)],all.x = TRUE) + + A1<-MD[,.(HLiterate=weighted.mean(HLiterate==TRUE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='True',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="True",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="True",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="True",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="True",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="True",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel=="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel=="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater=="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE))] + + A2<-MD[,.(HLiterate=weighted.mean(HLiterate==TRUE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='True',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="True",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="True",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="True",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="True",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="True",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel=="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel=="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater=="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Region] + + A3<-MD[,.(HLiterate=weighted.mean(HLiterate==TRUE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='True',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="True",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="True",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="True",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="True",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="True",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel=="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel=="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater=="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=ProvinceCode] + + A4<-MD[,.(HLiterate=weighted.mean(HLiterate==TRUE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='True',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="True",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="True",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="True",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="True",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="True",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel=="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel=="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater=="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Decile] + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + A3[,Year:=year] + X3 <- rbind(X3,A3) + + A4[,Year:=year] + X4 <- rbind(X4,A4) + +} + +#write.csv(X1,file="X1.csv") +#write.csv(X2,file="X2.csv") +#write.csv(X3,file="X3.csv") +#write.csv(X4,file="X4.csv") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/August 2020/Poverty Indices2.R b/R/Archive/August 2020/Poverty Indices2.R new file mode 100644 index 00000000..62f7a57f --- /dev/null +++ b/R/Archive/August 2020/Poverty Indices2.R @@ -0,0 +1,587 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Indices2 =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) +library(ggplot2) + +X1 <- data.table(Year=NA_integer_,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +X2 <- data.table(Year=NA_integer_,Region=NA_character_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + + +X3 <- data.table(Year=NA_integer_,Decile=NA_integer_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +Province<-data.table(Year=NA_integer_,ProvinceCode=NA_integer_,Total_Exp_Month_Per=NA_real_) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy,G125,G1253)],by="HHID") + MD[,Decile:=NULL] + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + MD<-merge(MD,Deciles,by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + P1<-P1[Age<=16 & Age>=6,.(HHID,Age,Literate,Student)] + P1<-P1[Literate==TRUE | Literate==FALSE] + P1<-P1[,Lit:=ifelse(Literate==FALSE | Student==FALSE,100,1)] + P<-P1[,lapply(.SD,sum),by="HHID"] + P<-P[,Knowledge:=ifelse(Lit>=100,0,1)] + MD<-merge(MD,P[,.(HHID,Knowledge)],all.x = TRUE) + + MD[,Low_Calorie:=ifelse(FoodKCaloriesHH_Per<2100,1,0)] + MD[,Low_Protein:=ifelse(FoodProtein_Per<60,1,0)] + MD[,No_Insurance:=ifelse(G1253==0,1,0)] + MD[,House_High_Share:=ifelse(((G041+G042)/All>0.3 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Urban") | + ((G041+G042)/All>0.2 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Rural"),1,0)] + MD[,Tech_low:=ifelse((phone=="False" & cellphone=="False" & + computer=="False") | + (phone=="False" & cellphone=="False" & + internet=="False") | + (phone=="False" & + computer=="False" & internet=="False") | + ( cellphone=="False" & + computer=="False" & internet=="False"),1,0)] + MD[,Yakhchal:=ifelse(refrigerator=="True" | freezer=="True" | + frez_refrig=="True","True","False")] + MD[,Equip_low:=ifelse((Yakhchal=="False" & washer=="False" & + oven=="False") | + (Yakhchal=="False" & washer=="False" & + tvcr=="False") | + (Yakhchal=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & oven=="False") | + ( washer=="False" & Yakhchal=="False") | + ( washer=="False" & tvcr=="False") | + ( tvcr=="False" & oven=="False") | + ( tvcr=="False" & Yakhchal=="False") | + ( Yakhchal=="False" & oven=="False") ,1,0)] + + A4<-MD[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE)),by=ProvinceCode] + + A1<-MD[,.(HLiterate=weighted.mean(HLiterate==TRUE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='True',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="True",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="True",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="True",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="True",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="True",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel=="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel=="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater=="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE))] + + A2<-MD[,.(HLiterate=weighted.mean(HLiterate==TRUE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='True',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="True",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="True",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="True",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="True",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="True",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel=="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel=="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater=="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Region] + + + A3<-MD[,.(HLiterate=weighted.mean(HLiterate==TRUE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='True',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="True",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="True",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="True",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="True",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="True",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel=="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel=="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater=="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Decile] + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + A3[,Year:=year] + X3 <- rbind(X3,A3) + + A4[,Year:=year] + Province <- rbind(Province,A4) + +} +X1<-X1[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X2<-X2[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X3<-X3[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] + + +png(file="C:/IRHEIS/R/1.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(HLiterate), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 22) +dev.off() + +png(file="C:/IRHEIS/R/2.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/3.png",width=1200, height=600) +ggplot(X3)+ +geom_line(mapping = aes(x=Year,y=HLiterate,col=factor(Decile), +linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + +############################################################################### +png(file="C:/IRHEIS/R/4.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Knowledge), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/5.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/6.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Knowledge,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/7.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Energy_Share), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/8.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/9.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Energy_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/10.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(electricity), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/11.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/12.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=electricity,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/13.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(cookfuel), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/14.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/15.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=cookfuel,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/16.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Calorie), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/17.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/18.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Calorie,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/19.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Protein), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/20.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/21.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Protein,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/22.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(No_Insurance), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/23.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/24.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=No_Insurance,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/25.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(pipewater), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/26.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/27.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=pipewater,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/28.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Area_Per), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/29.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/30.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Area_Per,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/31.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(skeleton), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/32.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/33.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=skeleton,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/34.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(House_High_Share), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/35.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/36.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=House_High_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/37.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/38.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/39.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=bathroom,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/40.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/41.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/42.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=ego,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/43.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(car), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/44.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/45.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=car,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/46.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Tech_low), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/47.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/48.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Tech_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/49.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Equip_low), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/50.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/51.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Equip_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + + + + +#write.csv(X1,file="X1.csv") +#write.csv(X2,file="X2.csv") +#write.csv(X3,file="X3.csv") +#write.csv(X4,file="X4.csv") +#write.csv(Province,file="Province.csv") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/August 2020/ProvinceResults.xlsx b/R/Archive/August 2020/ProvinceResults.xlsx new file mode 100644 index 00000000..3e8aac3f Binary files /dev/null and b/R/Archive/August 2020/ProvinceResults.xlsx differ diff --git a/R/Archive/August 2020/Refah 98 months.R b/R/Archive/August 2020/Refah 98 months.R new file mode 100644 index 00000000..8d468c23 --- /dev/null +++ b/R/Archive/August 2020/Refah 98 months.R @@ -0,0 +1,109 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Refah Months =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) + + + +year<-98 +#for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy)],by="HHID") + MD[,Decile:=NULL] + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + MD<-merge(MD,Deciles,by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + +MD[,Size2:=ifelse(Size>4,5,Size)] + + A1<-MD[,.(Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodExpenditure_Per=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm=TRUE), + FoodExpenditure=weighted.mean(FoodExpenditure,Weight,na.rm=TRUE), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight,na.rm=TRUE), + Size=weighted.mean(Size,Weight,na.rm=TRUE))] + + A2<-MD[,.(Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodExpenditure_Per=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm=TRUE), + FoodExpenditure=weighted.mean(FoodExpenditure,Weight,na.rm=TRUE), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight,na.rm=TRUE), + Size=weighted.mean(Size,Weight,na.rm=TRUE)),by=Month] + + A3<-MD[,.(Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodExpenditure_Per=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm=TRUE), + FoodExpenditure=weighted.mean(FoodExpenditure,Weight,na.rm=TRUE), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight,na.rm=TRUE), + Size=weighted.mean(Size,Weight,na.rm=TRUE)),by="Region"] + + A4<-MD[,.(Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodExpenditure_Per=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm=TRUE), + FoodExpenditure=weighted.mean(FoodExpenditure,Weight,na.rm=TRUE), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight,na.rm=TRUE), + Size=weighted.mean(Size,Weight,na.rm=TRUE)),by="Decile"] + + A5<-MD[,.(Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodExpenditure_Per=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm=TRUE), + FoodExpenditure=weighted.mean(FoodExpenditure,Weight,na.rm=TRUE), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight,na.rm=TRUE)),by=Size2] + + A6<-MD[,.(.N,Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodExpenditure_Per=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm=TRUE), + FoodExpenditure=weighted.mean(FoodExpenditure,Weight,na.rm=TRUE), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight,na.rm=TRUE), + Size=weighted.mean(Size,Weight,na.rm=TRUE)) + ,by=c("Region","Decile")] + + A7<-MD[,.(.N,Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodExpenditure_Per=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm=TRUE), + FoodExpenditure=weighted.mean(FoodExpenditure,Weight,na.rm=TRUE), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight,na.rm=TRUE), + Size=weighted.mean(Size,Weight,na.rm=TRUE)) + ,by=c("Month","Decile")] + + # write.csv(A7,file="A7.csv") + + A8<-MD[,.(.N,Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + FoodExpenditure_Per=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm=TRUE), + FoodExpenditure=weighted.mean(FoodExpenditure,Weight,na.rm=TRUE), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE), + Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight,na.rm=TRUE), + Size=weighted.mean(Size,Weight,na.rm=TRUE)) + ,by=c("Month","Region")] + +#} + +#write.csv(X1,file="X1.csv") +#write.csv(X2,file="X2.csv") +#write.csv(X3,file="X3.csv") +#write.csv(X4,file="X4.csv") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/August 2020/Refah Calculations.R b/R/Archive/August 2020/Refah Calculations.R new file mode 100644 index 00000000..da9c16df --- /dev/null +++ b/R/Archive/August 2020/Refah Calculations.R @@ -0,0 +1,695 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Refah Calculations =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +Data1 <- data.table(Year=NA_integer_,Number=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data2 <- data.table(Year=NA_integer_,Number=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data3 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data4 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data5 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data6 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data7 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data8 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data9 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data10 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data11 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data12 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data13 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data14 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data15 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data16 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data17 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data18 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data19 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data20 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data21 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data22 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data23 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data24 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data25 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data26 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data27 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data28 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data29 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data30 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data31 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data32 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data33 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data34 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data35 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data36 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data37 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data38 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data39 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data40 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data41 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data42 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data43 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data44 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data45 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data46 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data47 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data48 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data49 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data50 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data51 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data52 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data53 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data54 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data55 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data56 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,HSex=NA_character_, + Decile=NA_real_)[0] +Data57 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, Decile=NA_real_)[0] +Data58 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data61 <- data.table(Year=NA_integer_,FPLine=NA_real_,PovertyLine=NA_real_, + FinalFoodPoor=NA_real_,FinalPoor=NA_real_, + Region=NA_real_,HSex=NA_character_)[0] +Data62 <- data.table(Year=NA_integer_,FPLine=NA_real_,PovertyLine=NA_real_, + FinalFoodPoor=NA_real_,FinalPoor=NA_real_, + Region=NA_real_)[0] +Data63 <- data.table(Year=NA_integer_,FPLine=NA_real_,PovertyLine=NA_real_, + FinalFoodPoor=NA_real_,FinalPoor=NA_real_, + HSex=NA_character_)[0] +Data64 <- data.table(Year=NA_integer_,FPLine=NA_real_,PovertyLine=NA_real_, + FinalFoodPoor=NA_real_,FinalPoor=NA_real_)[0] +Data65 <- data.table(Year=NA_integer_,FPLine=NA_real_,PovertyLine=NA_real_, + FinalFoodPoor=NA_real_,FinalPoor=NA_real_, + Region=NA_real_,HSex=NA_character_)[0] +Data66 <- data.table(Year=NA_integer_,FPLine=NA_real_,PovertyLine=NA_real_, + FinalFoodPoor=NA_real_,FinalPoor=NA_real_, + Region=NA_real_)[0] +Data67 <- data.table(Year=NA_integer_,FPLine=NA_real_,PovertyLine=NA_real_, + FinalFoodPoor=NA_real_,FinalPoor=NA_real_, + HSex=NA_character_)[0] +Data68 <- data.table(Year=NA_integer_,FPLine=NA_real_,PovertyLine=NA_real_, + FinalFoodPoor=NA_real_,FinalPoor=NA_real_)[0] +Data71 <- data.table(Year=NA_integer_,Oil_NabatiGram=NA_real_, + Decile=NA_real_)[0] +Data72 <- data.table(Year=NA_integer_,BreadGrams=NA_real_, + Decile=NA_real_)[0] +Data73 <- data.table(Year=NA_integer_,SibzaminiGram=NA_real_, + Decile=NA_real_)[0] +Data81 <- data.table(Year=NA_integer_,x=NA_real_, + Decile=NA_real_)[0] +Data82 <- data.table(Year=NA_integer_,x=NA_real_, + Decile=NA_real_)[0] +Data83 <- data.table(Year=NA_integer_,x=NA_real_, + Decile=NA_real_)[0] +Data84 <- data.table(Year=NA_integer_,x=NA_real_, + Decile=NA_real_)[0] +Data85 <- data.table(Year=NA_integer_,x=NA_real_, + Decile=NA_real_)[0] +Data86 <- data.table(Year=NA_integer_,x=NA_real_, + Decile=NA_real_)[0] +Data87 <- data.table(Year=NA_integer_,x=NA_real_, + Decile=NA_real_)[0] +Data91 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data92 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, + HSex=NA_character_,Decile=NA_real_)[0] +Data93 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, + Decile=NA_real_)[0] +Data94 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data191 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data192 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, + HSex=NA_character_,Decile=NA_real_)[0] +Data193 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, + Decile=NA_real_)[0] +Data194 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +Data291 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + HSex=NA_character_,Decile=NA_real_)[0] +Data292 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, + HSex=NA_character_,Decile=NA_real_)[0] +Data293 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_, + Decile=NA_real_)[0] +Data294 <- data.table(Year=NA_integer_,Total_Exp_Month=NA_real_,Region=NA_character_, + Decile=NA_real_)[0] +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodCon.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalDurable.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durables.rda")) + + MD[,Durable_Exp:=NULL] + MD[,Durable_Sale:=NULL] + + if (year >= 90){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + MD[,Decile:=NULL] + MD[,Percentile:=NULL] + MD<-merge(MD,Deciles,by="HHID") + } + + if (year < 90){ + MD<-merge(MD,TotalFoodCon,by="HHID",all.x=TRUE) + } + + MD<-merge(MD,TotalFoodExp[,.(HHID,G01111,G01114,G01121,G01123,G0114,G01153,`011731`)],by="HHID",all.x=TRUE) + MD<-merge(MD,DurableData,by="HHID",all.x=TRUE) + #cat(MD[,weighted.mean(FPLine*Size,Weight,na.rm = TRUE)],"\t") + #cat(MD[,weighted.mean(PovertyLine*Size,Weight,na.rm = TRUE)],"\t") + #cat(MD[,weighted.mean(FinalFoodPoor,Weight,na.rm = TRUE)],"\t") + #cat(MD[,weighted.mean(FinalPoor,Weight,na.rm = TRUE)],"\t") + + #cat(MD[,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\t") + #cat(MD[,weighted.mean(PovertyLine,Weight,na.rm = TRUE)],"\t") + #cat(MD[,weighted.mean(FinalFoodPoor,Weight*Size,na.rm = TRUE)],"\t") + #cat(MD[,weighted.mean(FinalPoor,Weight*Size,na.rm = TRUE)],"\t") + + + X <- MD[,.(Number=sum(Weight)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data1 <- rbind(Data1,X) + write.csv(Data1,file="Data1.csv") + + X <- MD[,.(Number=sum(Weight)),by=c("HSex","Decile")] + X[,Year:=year] + Data2 <- rbind(Data2,X) + write.csv(Data2,file="Data2.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data3 <- rbind(Data3,X) + write.csv(Data3,file="Data3.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight)),by=c("HSex","Decile")] + X[,Year:=year] + Data4 <- rbind(Data4,X) + write.csv(Data4,file="Data4.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight)),by=c("Decile")] + X[,Year:=year] + Data5 <- rbind(Data5,X) + write.csv(Data5,file="Data5.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month,Weight)),by=c("Region","Decile")] + X[,Year:=year] + Data6 <- rbind(Data6,X) + write.csv(Data6,file="Data6.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month-FoodExpenditure,Weight)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data7 <- rbind(Data7,X) + write.csv(Data7,file="Data7.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month-FoodExpenditure,Weight)),by=c("HSex","Decile")] + X[,Year:=year] + Data8 <- rbind(Data8,X) + write.csv(Data8,file="Data8.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month-FoodExpenditure,Weight)),by=c("Decile")] + X[,Year:=year] + Data9 <- rbind(Data9,X) + write.csv(Data9,file="Data9.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month-FoodExpenditure,Weight)),by=c("Region","Decile")] + X[,Year:=year] + Data10 <- rbind(Data10,X) + write.csv(Data10,file="Data10.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(FoodExpenditure,Weight)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data11 <- rbind(Data11,X) + write.csv(Data11,file="Data11.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(FoodExpenditure,Weight)),by=c("HSex","Decile")] + X[,Year:=year] + Data12 <- rbind(Data12,X) + write.csv(Data12,file="Data12.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(FoodExpenditure,Weight)),by=c("Decile")] + X[,Year:=year] + Data13 <- rbind(Data13,X) + write.csv(Data13,file="Data13.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(FoodExpenditure,Weight)),by=c("Region","Decile")] + X[,Year:=year] + Data14 <- rbind(Data14,X) + write.csv(Data14,file="Data14.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(ServiceExp,Weight)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data15 <- rbind(Data15,X) + write.csv(Data15,file="Data15.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(ServiceExp,Weight)),by=c("HSex","Decile")] + X[,Year:=year] + Data16 <- rbind(Data16,X) + write.csv(Data16,file="Data16.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(ServiceExp,Weight)),by=c("Decile")] + X[,Year:=year] + Data17 <- rbind(Data17,X) + write.csv(Data17,file="Data17.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(ServiceExp,Weight)),by=c("Region","Decile")] + X[,Year:=year] + Data18 <- rbind(Data18,X) + write.csv(Data18,file="Data18.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Hygiene_Exp+Medical_Exp,Weight)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data19 <- rbind(Data19,X) + write.csv(Data19,file="Data19.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Hygiene_Exp+Medical_Exp,Weight)),by=c("HSex","Decile")] + X[,Year:=year] + Data20 <- rbind(Data20,X) + write.csv(Data20,file="Data20.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Hygiene_Exp+Medical_Exp,Weight)),by=c("Decile")] + X[,Year:=year] + Data21 <- rbind(Data21,X) + write.csv(Data21,file="Data21.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Hygiene_Exp+Medical_Exp,Weight)),by=c("Region","Decile")] + X[,Year:=year] + Data22 <- rbind(Data22,X) + write.csv(Data22,file="Data22.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Education_Exp,Weight)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data23 <- rbind(Data23,X) + write.csv(Data23,file="Data23.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Education_Exp,Weight)),by=c("HSex","Decile")] + X[,Year:=year] + Data24 <- rbind(Data24,X) + write.csv(Data24,file="Data24.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Education_Exp,Weight)),by=c("Decile")] + X[,Year:=year] + Data25 <- rbind(Data25,X) + write.csv(Data25,file="Data25.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Education_Exp,Weight)),by=c("Region","Decile")] + X[,Year:=year] + Data26 <- rbind(Data26,X) + write.csv(Data26,file="Data26.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(HotelRestaurant_Exp+Amusement_Exp,Weight)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data27 <- rbind(Data27,X) + write.csv(Data27,file="Data27.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(HotelRestaurant_Exp+Amusement_Exp,Weight)),by=c("HSex","Decile")] + X[,Year:=year] + Data28 <- rbind(Data28,X) + write.csv(Data28,file="Data28.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(HotelRestaurant_Exp+Amusement_Exp,Weight)),by=c("Decile")] + X[,Year:=year] + Data29 <- rbind(Data29,X) + write.csv(Data29,file="Data29.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(HotelRestaurant_Exp+Amusement_Exp,Weight)),by=c("Region","Decile")] + X[,Year:=year] + Data30 <- rbind(Data30,X) + write.csv(Data30,file="Data30.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Durable_Sale,Weight,na.rm = TRUE)/weighted.mean(Durable_Exp,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data31 <- rbind(Data31,X) + write.csv(Data31,file="Data31.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Durable_Sale,Weight,na.rm = TRUE)/weighted.mean(Durable_Exp,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data32 <- rbind(Data32,X) + write.csv(Data32,file="Data32.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Durable_Sale,Weight,na.rm = TRUE)/weighted.mean(Durable_Exp,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data33 <- rbind(Data33,X) + write.csv(Data33,file="Data33.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Durable_Sale,Weight,na.rm = TRUE)/weighted.mean(Durable_Exp,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data34 <- rbind(Data34,X) + write.csv(Data34,file="Data34.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month_Per,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data35 <- rbind(Data35,X) + write.csv(Data35,file="Data35.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month_Per,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data36 <- rbind(Data36,X) + write.csv(Data36,file="Data36.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month_Per,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data37 <- rbind(Data37,X) + write.csv(Data37,file="Data37.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Total_Exp_Month_Per,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data38 <- rbind(Data38,X) + write.csv(Data38,file="Data38.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data39 <- rbind(Data39,X) + write.csv(Data39,file="Data39.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data40 <- rbind(Data40,X) + write.csv(Data40,file="Data40.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data41 <- rbind(Data41,X) + write.csv(Data41,file="Data41.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(FoodExpenditure/EqSizeCalory,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data42 <- rbind(Data42,X) + write.csv(Data42,file="Data42.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(LivestockGrams,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data43 <- rbind(Data43,X) + write.csv(Data43,file="Data43.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(LivestockGrams,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data44 <- rbind(Data44,X) + write.csv(Data44,file="Data44.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(LivestockGrams,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data45 <- rbind(Data45,X) + write.csv(Data45,file="Data45.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(LivestockGrams,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data46 <- rbind(Data46,X) + write.csv(Data46,file="Data46.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(PoultryMeat_MGram,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data47 <- rbind(Data47,X) + write.csv(Data47,file="Data47.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(PoultryMeat_MGram,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data48 <- rbind(Data48,X) + write.csv(Data48,file="Data48.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(PoultryMeat_MGram,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data49 <- rbind(Data49,X) + write.csv(Data49,file="Data49.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(PoultryMeat_MGram,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data50 <- rbind(Data50,X) + write.csv(Data50,file="Data50.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(MilkGrams+MilkproductsGrams,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data51 <- rbind(Data51,X) + write.csv(Data51,file="Data51.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(MilkGrams+MilkproductsGrams,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data52 <- rbind(Data52,X) + write.csv(Data52,file="Data52.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(MilkGrams+MilkproductsGrams,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data53 <- rbind(Data53,X) + write.csv(Data53,file="Data53.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(MilkGrams+MilkproductsGrams,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data54 <- rbind(Data54,X) + write.csv(Data54,file="Data54.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(GrainGrams,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data55 <- rbind(Data55,X) + write.csv(Data55,file="Data55.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(GrainGrams,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data56 <- rbind(Data56,X) + write.csv(Data56,file="Data56.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(GrainGrams,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data57 <- rbind(Data57,X) + write.csv(Data57,file="Data57.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(GrainGrams,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data58 <- rbind(Data58,X) + write.csv(Data58,file="Data58.csv") + + X <- MD[,.(FPLine=weighted.mean(FPLine*Size,Weight,na.rm = TRUE), + PovertyLine=weighted.mean(PovertyLine*Size,Weight,na.rm = TRUE), + FinalFoodPoor=weighted.mean(FinalFoodPoor,Weight,na.rm = TRUE), + FinalPoor=weighted.mean(FinalPoor,Weight,na.rm = TRUE)),by=c("Region","HSex")] + X[,Year:=year] + Data61 <- rbind(Data61,X) + write.csv(Data61,file="Data61.csv") + + X <- MD[,.(FPLine=weighted.mean(FPLine*Size,Weight,na.rm = TRUE), + PovertyLine=weighted.mean(PovertyLine*Size,Weight,na.rm = TRUE), + FinalFoodPoor=weighted.mean(FinalFoodPoor,Weight,na.rm = TRUE), + FinalPoor=weighted.mean(FinalPoor,Weight,na.rm = TRUE)),by=c("Region")] + X[,Year:=year] + Data62 <- rbind(Data62,X) + write.csv(Data62,file="Data62.csv") + + X <- MD[,.(FPLine=weighted.mean(FPLine*Size,Weight,na.rm = TRUE), + PovertyLine=weighted.mean(PovertyLine*Size,Weight,na.rm = TRUE), + FinalFoodPoor=weighted.mean(FinalFoodPoor,Weight,na.rm = TRUE), + FinalPoor=weighted.mean(FinalPoor,Weight,na.rm = TRUE)),by=c("HSex")] + X[,Year:=year] + Data63 <- rbind(Data63,X) + write.csv(Data63,file="Data63.csv") + + X <- MD[,.(FPLine=weighted.mean(FPLine*Size,Weight,na.rm = TRUE), + PovertyLine=weighted.mean(PovertyLine*Size,Weight,na.rm = TRUE), + FinalFoodPoor=weighted.mean(FinalFoodPoor,Weight,na.rm = TRUE), + FinalPoor=weighted.mean(FinalPoor,Weight,na.rm = TRUE))] + X[,Year:=year] + Data64 <- rbind(Data64,X) + write.csv(Data64,file="Data64.csv") + + X <- MD[,.(FPLine=weighted.mean(FPLine,Weight,na.rm = TRUE), + PovertyLine=weighted.mean(PovertyLine,Weight,na.rm = TRUE), + FinalFoodPoor=weighted.mean(FinalFoodPoor,Weight*Size,na.rm = TRUE), + FinalPoor=weighted.mean(FinalPoor,Weight*Size,na.rm = TRUE)),by=c("Region","HSex")] + X[,Year:=year] + Data65 <- rbind(Data65,X) + write.csv(Data65,file="Data65.csv") + + X <- MD[,.(FPLine=weighted.mean(FPLine,Weight,na.rm = TRUE), + PovertyLine=weighted.mean(PovertyLine,Weight,na.rm = TRUE), + FinalFoodPoor=weighted.mean(FinalFoodPoor,Weight*Size,na.rm = TRUE), + FinalPoor=weighted.mean(FinalPoor,Weight*Size,na.rm = TRUE)),by=c("Region")] + X[,Year:=year] + Data66 <- rbind(Data66,X) + write.csv(Data66,file="Data66.csv") + + X <- MD[,.(FPLine=weighted.mean(FPLine,Weight,na.rm = TRUE), + PovertyLine=weighted.mean(PovertyLine,Weight,na.rm = TRUE), + FinalFoodPoor=weighted.mean(FinalFoodPoor,Weight*Size,na.rm = TRUE), + FinalPoor=weighted.mean(FinalPoor,Weight*Size,na.rm = TRUE)),by=c("HSex")] + X[,Year:=year] + Data67 <- rbind(Data67,X) + write.csv(Data67,file="Data67.csv") + + X <- MD[,.(FPLine=weighted.mean(FPLine,Weight,na.rm = TRUE), + PovertyLine=weighted.mean(PovertyLine,Weight,na.rm = TRUE), + FinalFoodPoor=weighted.mean(FinalFoodPoor,Weight,na.rm = TRUE), + FinalPoor=weighted.mean(FinalPoor,Weight,na.rm = TRUE))] + X[,Year:=year] + Data68 <- rbind(Data68,X) + write.csv(Data68,file="Data68.csv") + + + X <- MD[,.(Oil_NabatiGram=weighted.mean(Oil_NabatiGram,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data71 <- rbind(Data71,X) + write.csv(Data71,file="Data71.csv") + + X <- MD[,.(BreadGrams=weighted.mean(BreadGrams,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data72 <- rbind(Data72,X) + write.csv(Data72,file="Data72.csv") + + X <- MD[,.(SibzaminiGram=weighted.mean(SibzaminiGram,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data73 <- rbind(Data73,X) + write.csv(Data73,file="Data73.csv") + + + X <- MD[,.(x=weighted.mean(G01111/FoodExpenditure,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data81 <- rbind(Data81,X) + write.csv(Data81,file="Data81.csv") + + X <- MD[,.(x=weighted.mean(G01114/FoodExpenditure,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data82 <- rbind(Data82,X) + write.csv(Data82,file="Data82.csv") + + X <- MD[,.(x=weighted.mean(G01121/FoodExpenditure,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data83 <- rbind(Data83,X) + write.csv(Data83,file="Data83.csv") + + X <- MD[,.(x=weighted.mean(G01123/FoodExpenditure,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data84 <- rbind(Data84,X) + write.csv(Data84,file="Data84.csv") + + X <- MD[,.(x=weighted.mean(G0114/FoodExpenditure,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data85 <- rbind(Data85,X) + write.csv(Data85,file="Data85.csv") + + X <- MD[,.(x=weighted.mean(G01153/FoodExpenditure,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data86 <- rbind(Data86,X) + write.csv(Data86,file="Data86.csv") + + X <- MD[,.(x=weighted.mean(`011731`/FoodExpenditure,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data87 <- rbind(Data87,X) + write.csv(Data87,file="Data87.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Egg_MashinGram,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data91 <- rbind(Data91,X) + write.csv(Data91,file="Data91.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Egg_MashinGram,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data92 <- rbind(Data92,X) + write.csv(Data92,file="Data92.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Egg_MashinGram,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data93 <- rbind(Data93,X) + write.csv(Data93,file="Data93.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Egg_MashinGram,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data94 <- rbind(Data94,X) + write.csv(Data94,file="Data94.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Oil_NabatiGram,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data191 <- rbind(Data191,X) + write.csv(Data191,file="Data191.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Oil_NabatiGram,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data192 <- rbind(Data192,X) + write.csv(Data192,file="Data192.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Oil_NabatiGram,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data193 <- rbind(Data193,X) + write.csv(Data193,file="Data193.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(Oil_NabatiGram,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data194 <- rbind(Data194,X) + write.csv(Data194,file="Data194.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(GhandGram+ShekarGram,Weight,na.rm = TRUE)),by=c("Region","HSex","Decile")] + X[,Year:=year] + Data291 <- rbind(Data291,X) + write.csv(Data291,file="Data291.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(GhandGram+ShekarGram,Weight,na.rm = TRUE)),by=c("HSex","Decile")] + X[,Year:=year] + Data292 <- rbind(Data292,X) + write.csv(Data292,file="Data292.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(GhandGram+ShekarGram,Weight,na.rm = TRUE)),by=c("Decile")] + X[,Year:=year] + Data293 <- rbind(Data293,X) + write.csv(Data293,file="Data293.csv") + + X <- MD[,.(Total_Exp_Month=weighted.mean(GhandGram+ShekarGram,Weight,na.rm = TRUE)),by=c("Region","Decile")] + X[,Year:=year] + Data294 <- rbind(Data294,X) + write.csv(Data294,file="Data294.csv") +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/RegionResults.xlsx b/R/Archive/August 2020/RegionResults.xlsx new file mode 100644 index 00000000..23c434bb Binary files /dev/null and b/R/Archive/August 2020/RegionResults.xlsx differ diff --git a/R/Archive/August 2020/Some Specific Calculations.R b/R/Archive/August 2020/Some Specific Calculations.R new file mode 100644 index 00000000..81289762 --- /dev/null +++ b/R/Archive/August 2020/Some Specific Calculations.R @@ -0,0 +1,51 @@ + # Some Specific Calculations.R + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Some Specific Calculations =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"LivestockExp.rda")) +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BirdsMeatExp.rda")) +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"FishandShrimpExp.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Behdasht1",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Behdasht2",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Behdasht3",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable17",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable18",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable19",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable20",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable21",".rda")) + +Specific<-merge(LivestockData,BirdsMeatData,all = TRUE) +Specific<-merge(Specific,FishandShrimpData,all = TRUE) +Specific<-merge(Specific,Behdasht1,all = TRUE) +Specific<-merge(Specific,Behdasht2,all = TRUE) +Specific<-merge(Specific,Behdasht3,all = TRUE) +Specific<-merge(Specific,Durable17,all = TRUE) +Specific<-merge(Specific,Durable18,all = TRUE) +Specific<-merge(Specific,Durable19,all = TRUE) +Specific<-merge(Specific,Durable20,all = TRUE) +Specific<-merge(Specific,Durable21,all = TRUE) + +Specific[is.na(Specific)] <- 0 +save(Specific, file=paste0(Settings$HEISProcessedPath,"Y",year,"Specific.rda")) + +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) + + diff --git a/R/Archive/August 2020/Step 7 ,8,9-PovertyLines - Copy.R b/R/Archive/August 2020/Step 7 ,8,9-PovertyLines - Copy.R new file mode 100644 index 00000000..13d6a474 --- /dev/null +++ b/R/Archive/August 2020/Step 7 ,8,9-PovertyLines - Copy.R @@ -0,0 +1,154 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,FPLine=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + Engle=NA_real_,FPLine=NA_real_, + Total_Exp_Month_Per=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS_Engle.rda")) + + # MD<-MD[Region=="Urban"] + + # EngleD<- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + # TOriginalFoodExpenditure_Per<1.2*FPLine, + # .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month_nondurable,Weight), + # FPLine=mean(FPLine)),by=.(Region,cluster3)] + + + # EngleD[,EngleFinal:=mean(EngleFinal)] + EngleD[,PovertyLine:=FPLine/EngleFinal] + EngleD[,PovertyLine2:=FPLine/Engel] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,PovertyLine2,Engel)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine,1,0 )] + MD[,FinalPoor2:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine2,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + MD[,Old:=ifelse(HAge>59,1,0)] + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + FPLine=weighted.mean(FPLine,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + FPLine=weighted.mean(FPLine,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + # cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + #cat(MD[, weighted.mean(FinalFoodPoor,Weight*Size)],"\t") + #cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + #cat(MD[, weighted.mean(FPLine,Weight*Size)],"\t") + #cat(MD[, sum(Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + MD[, weighted.mean(FinalPoor,Weight*Size)] + MD[, weighted.mean(FinalPoor,Weight*Size),by=Region] + MD[, weighted.mean(FinalPoor,Weight*Size),by=Old] + MD[, weighted.mean(FinalPoor,Weight*Size),by=cluster3] + MD[,weighted.mean(FinalPoor,Weight),by=ProvinceName][order(ProvinceName)] + + cat(MD[, weighted.mean(FinalFoodPoor,Weight*Size)],"\t") + cat(MD[Old==1, weighted.mean(FinalFoodPoor,Weight*Size)],"\t") + cat(MD[Old==0, weighted.mean(FinalFoodPoor,Weight*Size)],"\t") + + DurableD<- MD[ Total_Exp_Month_Per_nondurable>0.8*PovertyLine & + Total_Exp_Month_Per_nondurable<1.2*PovertyLine, + .(.N,Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight), + PovertyLine=mean(PovertyLine)), + by=.(Region,cluster3)] + + DurableD[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + MD <- merge(MD,DurableD[,.(cluster3,Region,PovertyLine_Final)],by=c("Region","cluster3")) + + #cat(MD[, weighted.mean(PovertyLine_Final,Weight*Size)]) + MD[FinalPoor==1,weighted.mean(Total_Exp_Month_Per,Weight)] + MD[FinalPoor==1,weighted.mean(Total_Exp_Month_Per,Weight),by=Region] + +} + +write.csv(FinalClusterResults,file = "FinalClusterResults.csv") + +#ggplot(FinalClusterResults)+ + # geom_line(mapping = aes(x=Year,y=PovertyHCR,col=factor(cluster3),linetype=factor(cluster3))) + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/TestPovertyModelsForAllNewAreas.R b/R/Archive/August 2020/TestPovertyModelsForAllNewAreas.R new file mode 100644 index 00000000..84f3376b --- /dev/null +++ b/R/Archive/August 2020/TestPovertyModelsForAllNewAreas.R @@ -0,0 +1,299 @@ +rm(list=ls()) + +wtable <- function(dataframe, weights=NULL){ + if(is.null(weights)) + weights(dataframe$weigths) + if(is.null(weights)) + return(table(dataframe)) + t <- table(dataframe) + l <- attr(t,"dimnames") + v1 <- names(l)[1] + v2 <- names(l)[2] + vals1 <- l[[v1]] + vals2 <- l[[v2]] + t[1,1] <- sum(weights[which(dataframe[[v1]]==vals1[1] & dataframe[[v2]]==vals2[1])]) + t[1,2] <- sum(weights[which(dataframe[[v1]]==vals1[1] & dataframe[[v2]]==vals2[2])]) + t[2,1] <- sum(weights[which(dataframe[[v1]]==vals1[2] & dataframe[[v2]]==vals2[1])]) + t[2,2] <- sum(weights[which(dataframe[[v1]]==vals1[2] & dataframe[[v2]]==vals2[2])]) + return(t) +} + +starttime <- proc.time() +cat("\n\n================ Classification Models =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +# options(java.parameters = "-Xmx5g") +# library(readxl) +library(data.table) +# library(stringr) +# library(janitor) +# library(dplyr) +# library(Hmisc) +library(caret) +# library(caretEnsemble) +library(gbm) +library(nnet) +# library(pROC) +# library(glmnet) +library(parallel) +library(doParallel) +library(factoextra) +library(rpart) + +#sink("classificationmodelsresults.txt") +acml <- c("tree","logit","probit","bernoulli","adaboost","huberized","nnet") +acml <- "tree" +year <- 94 +for(year in 97:97){ + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Data4ClassifactionModels.rda")) + #Data <- Data[,-39,with=FALSE] + # Data <- Data[,Percentile:=as.numeric(paste0(Percentile))] + # Data <- Data[,Percentile_Nominal:=as.numeric(paste0(Percentile_Nominal))] + D <- copy(Data) + D <- D[,ProvinceName:=NULL] + D <- D[,Percentile:=NULL] + D <- D[,Percentile_Nominal:=NULL] + D <- D[,Decile:=NULL] + D <- D[,Decile_Nominal:=NULL] + D <- D[,NewArea:=NULL] + D <- D[,cluster3:=as.factor(cluster3)] + remnames <- c("Total_Exp_Month_Per_nondurable","PovertyLine","TOriginalFoodExpenditure_Per", + "Engel","InitialPoor","FPLine","HHID","Real_Total_Exp_Month","Weight","Year","NetIncome", + "Real_FoodExpenditure","Real_Durable_Exp","cluster3","NewArea_Name") + ClusterList <- unique(D$cluster3) + + # ResultsTestsData <- data.table() + Results <- data.table() + SepRes <- data.table() + + + registerDoParallel(6) + getDoParWorkers() + + + Cluster <- "13" + + # XResults <- data.table() + +# for(Reg in c("Rural","Urban")){ + for(Cluster in ClusterList){ + cat("\n\n======================\n",":",Cluster,"\n") + D <- D[,ThisArea := ifelse(cluster3 == Cluster,1,0)] + D <- D[,SIS := ifelse(cluster3 %in% c(7,13),1,0)] + + + dm <- dummyVars("~.",data = D[,setdiff(names(D),remnames),with=FALSE], fullRank = FALSE) + D2 <- as.data.table(predict(dm,D)) + #prop.table(table(D2$FinalPoor)) + + outN <- "FinalPoor" + predictornames <- names(D2)[! names(D2) %in% c(outN,"ThisArea","SIS")] + if(Cluster=="1"){ + predictornames <- setdiff(predictornames,c("Car")) + } + D2[is.na(D2)] <- 0 + + D2 <- D2[,FP:=as.factor(ifelse(FinalPoor==1,"Poor","NotPoor"))] + outF <- "FP" + + pc <- prcomp(D2[,predictornames,with=FALSE]) + sepid <- which(D2$ThisArea==1) + ttid <- which(D2$ThisArea==0 & D2$SIS==0) + + # SepD <- D2[ThisArea==1,c(outF,outN,predictornames),with=FALSE] + # D3 <- D2[ThisArea == 0 & SIS==0,] + t0 <- Sys.time() + imp <- summary(pc)$importance[3,] + pidx <- min(which(imp>.99)) + XcD <- data.frame(pc$x[ttid,1:pidx]) + XScD <- data.frame(pc$x[sepid,1:pidx]) + + t1 <- Sys.time() + cat("\nPCA ...",as.character(t1),"\t[",as.character(t1-t0),"]\n") + + XoD <- D2[ttid,predictornames,with=FALSE] + yfD <- D2[[outF]][ttid] + ynD <- D2[[outN]][ttid] + + + XSoD <- D2[sepid,predictornames,with=FALSE] + + splitIndex <- createDataPartition(yfD,p=.75,list = FALSE,times = 1) + + for(dtype in c("o")){#},"c")){ + if(dtype=="o"){ + XD <- XoD + XSep <- XSoD + }else{ + XD <- XcD + XSep <- XScD + } + + X_train <- XD[splitIndex,] #D3[splitIndex,predictornames,with=FALSE] + y_trainF <- yfD[splitIndex]#[[outF]] + y_trainN <- ynD[splitIndex]#[[outN]] + + X_test <- XD[-splitIndex,] # D3[-splitIndex,predictornames,with=FALSE] + y_testF <- yfD[-splitIndex]#[[outF]] + y_testN <- ynD[-splitIndex]#[[outN]] + + X_Sep <- XSep + y_SepF <- D2[[outF]][sepid] + y_SepN <- D2[[outN]][sepid] + + DTrainN <- data.frame(y=y_trainN, X_train) + DTrainF <- data.frame(y=y_trainF, X_train) + DTestN <- data.frame(y=y_testN, X_test) + DTestF <- data.frame(y=y_testF, X_test) + DSepN <- data.frame(y=y_SepN, X_Sep) + DSepF <- data.frame(y=y_SepF, X_Sep) + + + # for(ratio in 10:40/10){ + # cat(".") + # + # loss_matr <- matrix(c(0, 1, ratio, 0), nrow = 2, byrow = TRUE) + # + # objModel <- rpart(y ~ .,DTrainF , + # control=rpart.control(maxdepth=10), + # method="class", + # parms = list(loss = loss_matr)) + # + # predictions_test <- predict(object = objModel, X_test, type="class") + # predictions_sep <- predict(object = objModel, X_Sep, type="class") + # testresults <- data.frame(alg=y_testF, + # pred=predictions_test) + # + # ttab <- table(testresults) + # ttab + # XResults <- rbind(XResults,data.table(AreaName,Reg,"tree",ratio, + # Accuracy=sum(diag(ttab))/sum(ttab), + # Precision=sum(ttab[1,1])/sum(ttab[,1]), + # Recall=sum(ttab[1,1])/sum(ttab[1,]), + # FalsePositive=sum(ttab[2,1])/sum(ttab[2,]), + # DataHCR=sum(ttab[2,])/sum(ttab), + # PredHCR=sum(ttab[,2])/sum(ttab))) + # } + #describe(X_train) + # featurePlot(x = X_test,y = y_test, + # between=list(x=1,y=1), + # type=c("g","p","smooth")) + + # myctl <- trainControl(method = "cv", + # number = 5, + # savePredictions = "final", + # allowParallel = TRUE, + # classProbs = TRUE) + + mdl <- acml[1] + for(mdl in acml){ + cat("\n",mdl,"-",dtype," ... ") + t0 <- Sys.time() + + if(mdl=="tree"){ + loss_matr <- matrix(c(0, 1, 2.1, 0), nrow = 2, byrow = TRUE) + + objModel <- rpart(y ~ .,DTrainF , + control=rpart.control(maxdepth=8), + method="class", + parms = list(loss = loss_matr)) + + predictions_test <- predict(object = objModel, X_test, type="class") + predictions_sep <- predict(object = objModel, X_Sep, type="class") + + }else if(mdl %in% c("logit","probit")){ + objModel <- glm(y ~ . ,data=DTrainF, + family = binomial(link = mdl)) + + predictions_test_prob <- predict(object = objModel, X_test, type="response") + predictions_test <- ifelse(predictions_test_prob > .5, "Poor", "NotPoor") + predictions_sep_prob <- predict(object = objModel, X_Sep, type="response") + predictions_sep <- ifelse(predictions_sep_prob > .5, "Poor", "NotPoor") + + + }else if(mdl %in% c("bernoulli","adaboost","huberized")){ + fmla <- as.formula(paste("FinalPoor ~",paste(names(DTrainN)[-1],collapse = "+"))) + objModel <- gbm.fit(x = X_train,y = y_trainN ,distribution = mdl,verbose = FALSE) + predictions_test_prob <- predict(object = objModel, X_test, type="response", n.trees = 3) + predictions_test <- ifelse(predictions_test_prob > .5, "Poor", "NotPoor") + predictions_sep_prob <- predict(object = objModel, X_Sep, type="response", n.trees = 3) + predictions_sep <- ifelse(predictions_sep_prob > .5, "Poor", "NotPoor") + # }else if(mdl=="nnet"){ + # # objModel <- nnet(x = X_train,y = y_trainN,size = 2) + # # predict(object = objModel, X_test, type="raw") + # # + }else{ #nnet + + objModel <- caret::train(X_train,y_trainF, + method = mdl, + trControl = myctl, + # metric = "ROC", + preProcess = c("center","scale"), + verbose=FALSE) + + predictions_test <- predict(object = objModel, X_test, type="raw") + predictions_Sep <- predict(object = objModel, X_Sep, type="raw") + } + + + testresults <- data.frame(alg=y_testF, + pred=predictions_test) + + ttab <- wtable(testresults,D[ttid][-splitIndex]$Weight*D[ttid][-splitIndex]$Size) + #ttab + Results <- rbind(Results,data.table(dtype,Cluster,mdl, + Accuracy=sum(diag(ttab))/sum(ttab), + Precision=sum(ttab[1,1])/sum(ttab[,1]), + Recall=sum(ttab[1,1])/sum(ttab[1,]), + FalsePositive=sum(ttab[2,1])/sum(ttab[2,]), + DataHCR=sum(ttab[2,])/sum(ttab), + PredHCR=sum(ttab[,2])/sum(ttab))) + + sepresults <- data.frame(alg=y_SepF, + pred=predictions_sep) + + ttab <- wtable(sepresults,D[sepid]$Weight*D[sepid]$Size) + SepRes <- rbind(SepRes,data.table(dtype,Cluster,mdl, + Accuracy=sum(diag(ttab))/sum(ttab), + Precision=sum(ttab[1,1])/sum(ttab[,1]), + Recall=sum(ttab[1,1])/sum(ttab[1,]), + FalsePositive=sum(ttab[2,1])/sum(ttab[2,]), + DataHCR=sum(ttab[2,])/sum(ttab), + PredHCR=sum(ttab[,2])/sum(ttab))) + t1 <- Sys.time() + cat(as.character(t1),"\t[",as.character(t1-t0),"]\n") + + } + } + } + } +#} +Results[,DiffHCR:=DataHCR-PredHCR] +Results[,Diff:=(DataHCR/PredHCR-1)^2] +Results <- Results[!is.na(Diff)] +View(Results) +SepRes[,DiffHCR:=DataHCR-PredHCR] +SepRes[,Diff:=(DataHCR/PredHCR-1)^2] +SeSepRes <- SepRes[!is.na(Diff)] +View(SepRes) +#sink() +#View(ResultsTestsData) + + + +D[cluster3==12,weighted.mean(Total_Exp_Month_Per_nondurable76,lapply(.SD, mean,na.rm=TRUE)] +View(rbind(S1,S2,S3,S4)) diff --git a/R/Archive/August 2020/TornqvistPriceIndex.R b/R/Archive/August 2020/TornqvistPriceIndex.R new file mode 100644 index 00000000..8b4edbe1 --- /dev/null +++ b/R/Archive/August 2020/TornqvistPriceIndex.R @@ -0,0 +1,185 @@ +# Tornqvist Price Index +# +# Copyright 2020 Zahra Shahidi & Majid Einian + + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +# Settings$InitialPoorPercentile <- 1:22 +# Settings$startyear <- 77 +#library(readxl) +library(data.table) +#library(ggplot2) + +# Function Defs --------------------------------------------------------------------------------- +CalcTornqvistIndex <- function(DataTable,by=c("Region","NewArea2")){ + X <- DataTable[,.(N=.N,wi1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wi2=weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE), + pi1=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + pi2=weighted.mean(MetrPrice,Weight,na.rm = TRUE)),by=by] + + X[,wi:=wi1+wi2] + X[,wi1:=wi1/wi] + X[,wi2:=wi2/wi] + XTeh<-X[NewArea2=="Sh_Tehran",lapply(.SD, mean),.SDcols=setdiff(names(X),by)] + wk1<-XTeh$wi1 # k == Sh_Tehran + wk2<-XTeh$wi2 + pk1<-XTeh$pi1 + pk2<-XTeh$pi2 + + X[,SimpleIndex:= .5 * pi1/pk1 + .5 * pi2/pk2] + X[,AnotherIndex:= wi1 * pi1/pk1 + wi2 * pi2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wi1)/2 * log(pi1/pk1) + (wk2+wi2)/2 * log(pi2/pk2) ) ] + + + # print(X[Region=="Rural" & NewArea2=="Semnan",]) + # if("Percentile" %in% names(DataTable)) + # print(DataTable[Region=="Rural" & NewArea2=="Semnan",.(min=min(as.integer(Percentile)),max=max(as.integer(Percentile))),by=.(Region,NewArea2)]) + if(any(X$N<10)) + warning(paste0("Less than 10: "))#,X[N<10,paste0(Region,NewArea2,Quintile)],": ",X[N<10,N],"\n")) + X[,PriceIndex:=TornqvistIndex] + return(X[,c(by,"PriceIndex"),with=FALSE]) +} + + +DoDeciling_SetInitialPoor <- function(DataTable,PriceIndexDT,by=c("Region","NewArea2")){ + + if("PriceIndex" %in% names(DataTable)){ + DataTable <- DataTable[,PriceIndex:=NULL] + } + DataTable <- merge(DataTable,PriceIndexDT,by=by) + + + DataTable <- DataTable[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] + DataTable <- DataTable[,xr25th:=.SD[25,Total_Exp_Month_Per_nondurable_Real],by=by] + DataTable <- DataTable[,First25:=ifelse(Total_Exp_Month_Per_nondurable_Real<=xr25th,1,0)] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] # I removed Region from ordering, deciling is not divided into rural/urban (M.E. 5/11/2020) + DataTable <- DataTable[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + + #Calculate deciles by weights + DataTable <- DataTable[,Quartile:=cut(crw,breaks = seq(0,1,.25),labels = 1:4)] + DataTable <- DataTable[,Quintile:=cut(crw,breaks = seq(0,1,.2),labels = 1:5)] + DataTable <- DataTable[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + DataTable <- DataTable[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + DataTable <- DataTable[,InitialPoorBasedOnPercentile:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + + return(DataTable) +} + + # Main loop for years ---------------------------------------------------------------- +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea2,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + PriceDT <- CalcTornqvistIndex(SMD) + SMD <- DoDeciling_SetInitialPoor(SMD,PriceDT) + + SMD <- SMD[,QuartileOnPricesForAll:=Quartile] + SMD <- SMD[,QuintileOnPricesForAll:=Quintile] + SMD <- SMD[,DecileOnPricesForAll:=Decile] + SMD <- SMD[,PercentileOnPricesForAll:=Percentile] + + + + SMD[,InitialPoorBasedOnPercentileLastIteration:=1] + i <- 0 + while(SMD[,sum((InitialPoorBasedOnPercentile-InitialPoorBasedOnPercentileLastIteration)^2)]>0.002*nrow(SMD) & i <50){ + i <- i+1 + SMD[,InitialPoorBasedOnPercentileLastIteration:=InitialPoorBasedOnPercentile] + + SMDIterationPoor <- SMD[InitialPoorBasedOnPercentileLastIteration==1 | First25==1 ] + + # if(nrow(SMDIterationPoor[,.N,by=.(Region,NewArea2)])<78) + # stop("HERE Some Area goes missing!") + # if(min(SMDIterationPoor[,.N,by=.(Region,NewArea2)]$N)==0) + # stop("HERE Some Area goes missing!") + # + PriceDTBasedOnThisIterationPoor <- CalcTornqvistIndex(SMDIterationPoor) + # print(PriceDTBasedOnThisIterationPoor[Region=="Rural" & NewArea2=="Semnan",]) + SMD <- DoDeciling_SetInitialPoor(SMD,PriceDTBasedOnThisIterationPoor) + + cat("\n",i,":",SMD[,sum((InitialPoorBasedOnPercentile-InitialPoorBasedOnPercentileLastIteration)^2)]) + } + + SMD <- SMD[,QuartileOnPricesForInitialPoor:=Quartile] + SMD <- SMD[,QuintileOnPricesForInitialPoor:=Quintile] + SMD <- SMD[,DecileOnPricesForInitialPoor:=Decile] + SMD <- SMD[,PercentileOnPricesForInitialPoor:=Percentile] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + table(SMD[,.(QuintileOnPricesForAll,QuintileOnPricesForInitialPoor)]) + + SMD[,Quartile:=QuintileOnPricesForAll] + SMD[,QuartileLastIteration:=QuintileOnPricesForInitialPoor] + i <- 0 + while(SMD[,mean((as.integer(Quartile)-as.integer(QuartileLastIteration))^2)]>.4 & i <=12){ + i <- i+1 + SMD[,QuartileLastIteration:=Quartile] + + PriceDTBasedOnThisIteration <- CalcTornqvistIndex(SMD,by=c("Region","NewArea2","Quartile")) + SMD <- DoDeciling_SetInitialPoor(SMD,PriceDTBasedOnThisIteration,by=c("Region","NewArea2","Quartile")) + + SMD <- SMD[,X:=Total_Exp_Month_Per_nondurable] + + SMD <- SMD[,NewP:=PriceIndex] + SMD <- SMD[,NewXR:=Total_Exp_Month_Per_nondurable_Real] + SMD <- SMD[,NewQ:=Quartile] + + setnames(SMD,"NewP",sprintf("P%02d", i)) + setnames(SMD,"NewXR",sprintf("XR%02d", i)) + setnames(SMD,"NewQ",sprintf("Q%02d", i)) + + cat("\n",i,":",SMD[,mean((as.integer(Quartile)-as.integer(QuartileLastIteration))^2)]) + # cat("\n") + # print(table(SMD[,.(Quintile,QuartileLastIteration)])) + } + + SMD <- SMD[,QuartileOnPricesForEachQuartile:=Quartile] + SMD <- SMD[,QuintileOnPricesForEachQuartile:=Quintile] + SMD <- SMD[,DecileOnPricesForEachQuartile:=Decile] + SMD <- SMD[,PercentileOnPricesForEachQuartile:=Percentile] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + + + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,InitialPoorBasedOnPercentile,Decile,Percentile)],by="HHID") + setnames(MD,"InitialPoorBasedOnPercentile","InitialPoor") # or maybe InitialPoorBasedOnRealIterativePercentile ! + + + MD[,weighted.mean(InitialPoor,Weight,na.rm = TRUE), by=.(NewArea2,Region)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ",(endtime-starttime)["elapsed"]," seconds") diff --git a/R/Archive/August 2020/berenj.pdf b/R/Archive/August 2020/berenj.pdf new file mode 100644 index 00000000..4764a941 Binary files /dev/null and b/R/Archive/August 2020/berenj.pdf differ diff --git a/R/Archive/August 2020/calory.pdf b/R/Archive/August 2020/calory.pdf new file mode 100644 index 00000000..7918297f Binary files /dev/null and b/R/Archive/August 2020/calory.pdf differ diff --git a/R/Archive/August 2020/ejare.R b/R/Archive/August 2020/ejare.R new file mode 100644 index 00000000..9f888b3b --- /dev/null +++ b/R/Archive/August 2020/ejare.R @@ -0,0 +1,68 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Ejare =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +DT1 <- data.table(Year=NA_integer_,Exp=NA_real_,Exp_Pure=NA_real_, + Region=NA_character_, + Malek=NA_integer_,Decile=NA_real_)[0] + +DT2 <- data.table(Year=NA_integer_,Exp=NA_real_,Region=NA_character_, + Malek=NA_integer_,Decile=NA_real_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodCon.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalDurable.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durables.rda")) + + MD[,Durable_Exp:=NULL] + MD[,Durable_Sale:=NULL] + + if (year >= 90){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + MD[,Decile:=NULL] + MD[,Percentile:=NULL] + MD<-merge(MD,Deciles,by="HHID") + } + + if (year < 90){ + MD<-merge(MD,TotalFoodCon,by="HHID",all.x=TRUE) + } + + MD<-merge(MD,TotalFoodExp[,.(HHID,G01111,G01114,G01121,G01123,G0114,G01153,`011731`)],by="HHID",all.x=TRUE) + MD<-merge(MD,DurableData,by="HHID",all.x=TRUE) + MD[,Malek:=ifelse(tenure=="OwnLandandBuilding" | tenure=="Apartment" ,1,0)] + + X <- MD[,.(Exp_Pure=weighted.mean(Total_Exp_Month_Per-(ServiceExp/EqSizeOECD),Weight), + Exp=weighted.mean(Total_Exp_Month_Per,Weight)),by=c("Region","Malek","Decile")] + X[,Year:=year] + DT1 <- rbind(DT1,X) + write.csv(DT1,file="DT1.csv") + + + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/August 2020/goosht.pdf b/R/Archive/August 2020/goosht.pdf new file mode 100644 index 00000000..481578bc Binary files /dev/null and b/R/Archive/August 2020/goosht.pdf differ diff --git a/R/Archive/August 2020/makaroni.pdf b/R/Archive/August 2020/makaroni.pdf new file mode 100644 index 00000000..d92c85e8 Binary files /dev/null and b/R/Archive/August 2020/makaroni.pdf differ diff --git a/R/Archive/August 2020/mive.pdf b/R/Archive/August 2020/mive.pdf new file mode 100644 index 00000000..bcb3bd91 Binary files /dev/null and b/R/Archive/August 2020/mive.pdf differ diff --git a/R/Archive/August 2020/morgh.pdf b/R/Archive/August 2020/morgh.pdf new file mode 100644 index 00000000..787bd1a6 Binary files /dev/null and b/R/Archive/August 2020/morgh.pdf differ diff --git a/R/Archive/August 2020/nan.pdf b/R/Archive/August 2020/nan.pdf new file mode 100644 index 00000000..4e9697dd Binary files /dev/null and b/R/Archive/August 2020/nan.pdf differ diff --git a/R/Archive/August 2020/sabad23.R b/R/Archive/August 2020/sabad23.R new file mode 100644 index 00000000..27939023 --- /dev/null +++ b/R/Archive/August 2020/sabad23.R @@ -0,0 +1,194 @@ +# 703-Bundle 2100 +# Builds the Food Groups data.table for households +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(data.table) +library(ggplot2) + +library(data.table) +library(stringr) +library(readxl) +library(spatstat) +library(writexl) +year<-95 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodGrams.rda")) + + MD<-merge(MD,FoodPrices,all.x=TRUE,by="HHID") + MD<-merge(MD,FoodGrams,all.x=TRUE,by="HHID") + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + MetaData <- read_excel(Settings$MetaDataFilePath, Settings$MDS_FoodGroups) + MetaData<-as.data.table(MetaData) + MetaData<-MetaData[,SheetName:=NULL] + FoodNames<-MetaData + save(FoodNames,file ="FoodNames.rda" ) + load(file = "FoodNames.rda") + + # y<-MD[,weighted.mean(FoodKCaloriesHH_Per,Weight),by=c("Region","Decile")] + + + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + goosht<-BigFData[FoodType=="Goosht"] + goosht<-goosht[,Goosht_Grams:=FGrams*30] + morgh<-BigFData[FoodType=="Morgh"] + morgh<-morgh[,Morgh_Grams:=FGrams*30] + mive<-BigFData[FoodType=="Mive"] + mive<-mive[,Mive_Grams:=FGrams*30] + nan<-BigFData[FoodType=="Nan"] + nan<-nan[,Nan_Grams:=FGrams*30] + sibzamini<-BigFData[FoodType=="Sibzamini"] + sibzamini<-sibzamini[,Sibzamini_Grams:=FGrams*30] + makarooni<-BigFData[FoodType=="Makarooni"] + makarooni<-makarooni[,Makarooni_Grams:=FGrams*30] + berenj<-BigFData[FoodType=="Berenj"] + berenj<-berenj[,Berenj_Grams:=FGrams*30] + hoboobat<-BigFData[FoodType=="Hoboobat"] + hoboobat<-hoboobat[,Hoboobat_Grams:=FGrams*30] + sabzi<-BigFData[FoodType=="Sabzi"] + sabzi<-sabzi[,Sabzi_Grams:=FGrams*30] + roghan<-BigFData[FoodType=="Roghan"] + roghan<-roghan[,Roghan_Grams:=FGrams*30] + ghand<-BigFData[FoodType=="Ghand"] + ghand<-ghand[,Ghand_Grams:=FGrams*30] + labaniat<-BigFData[FoodType=="Shir" | FoodType=="Mast" | FoodType=="Panir"] + labaniat<-labaniat[,.(HHID,FGrams)] + labaniat<-labaniat[,lapply(.SD,sum),by=c("HHID")] + labaniat<-labaniat[,Labaniat_Grams:=FGrams*30] + tokhmemorgh<-BigFData[FoodType=="Tokhmemorgh"] + tokhmemorgh<-tokhmemorgh[,Tokhmemorgh_Grams:=FGrams*30] + MD<-merge(MD,goosht[,.(HHID,Goosht_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,morgh[,.(HHID,Morgh_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,mive[,.(HHID,Mive_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,nan[,.(HHID,Nan_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,sibzamini[,.(HHID,Sibzamini_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,makarooni[,.(HHID,Makarooni_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,berenj[,.(HHID,Berenj_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,hoboobat[,.(HHID,Hoboobat_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,sabzi[,.(HHID,Sabzi_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,roghan[,.(HHID,Roghan_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,ghand[,.(HHID,Ghand_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,labaniat[,.(HHID,Labaniat_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,tokhmemorgh[,.(HHID,Tokhmemorgh_Grams)],by=c("HHID"),all.x = T) + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MD[,Selected_Group:=ifelse((Region=="Urban" & Decile==3) | + (Region=="Rural" & Decile==2),1,0)] + + MDP <- MD [Selected_Group==1, + .(FPLine=0.001* + (weighted.mean(LavashPrice,Weight,na.rm = TRUE)*weighted.mean(Nan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE)*weighted.mean(Berenj_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(MacaroniPrice,Weight,na.rm = TRUE)*weighted.mean(Makarooni_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(AdasPrice,Weight,na.rm = TRUE)*weighted.mean(Hoboobat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE)*weighted.mean(Sibzamini_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE)*weighted.mean(Sabzi_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE)*weighted.mean(Mive_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(LivestockGrams,Weight,na.rm = TRUE)*weighted.mean(Goosht_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE)*weighted.mean(Morgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE)*weighted.mean(Tokhmemorgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE)*weighted.mean(Labaniat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE)*weighted.mean(Roghan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)+ + weighted.mean(GhandPrice,Weight,na.rm = TRUE)*weighted.mean(Ghand_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE))), + by=.(cluster3,Region)] + MDP<-MDP[,lapply(.SD,sum),by=c("cluster3","Region")] + price<- MD[Selected_Group==1, + .(LavashPrice=weighted.mean(LavashPrice,Weight,na.rm = TRUE), + Rice_TaromPrice=weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE), + MacaroniPrice=weighted.mean(MacaroniPrice,Weight,na.rm = TRUE), + HobubatPrice=weighted.mean(AdasPrice,Weight,na.rm = TRUE), + SibzaminiPrice=weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE), + Sabzi_KhordanPrice=weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE), + Banana_CoconutPrice=weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE), + LivestockGrams=weighted.mean(LivestockGrams,Weight,na.rm = TRUE), + PoultryMeat_MPrice=weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE), + Egg_MashinPrice=weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE), + Milk_PasteurizedPrice=weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE), + Oil_NabatiPrice=weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE), + GhandPrice=weighted.mean(GhandPrice,Weight,na.rm = TRUE))] + #by=.(cluster3,Region)] + gram <-MD [Selected_Group==1, + .(Nan_Grams= weighted.mean(Nan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Berenj_Grams= weighted.mean(Berenj_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Makarooni_Grams=weighted.mean(Makarooni_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Hoboobat_Grams=weighted.mean(Hoboobat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Sibzamini_Grams=weighted.mean(Sibzamini_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Sabzi_Grams=weighted.mean(Sabzi_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Mive_Grams=weighted.mean(Mive_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Goosht_Grams=weighted.mean(Goosht_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Morgh_Grams=weighted.mean(Morgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Tokhmemorgh_Grams=weighted.mean(Tokhmemorgh_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Labaniat_Grams=weighted.mean(Labaniat_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Roghan_Grams=weighted.mean(Roghan_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE), + Ghand_Grams=weighted.mean(Ghand_Grams/EqSizeCalory,Weight*Size,na.rm=TRUE)), + by=.(cluster3,Region)] + + MDP[is.na(MDP)] <- 0 + min<-MDP[FPLine>0,min(FPLine)] + MDP[,FPLine:=ifelse(FPLine==0,min,FPLine)] + + MD <- merge(MD,MDP,all.x=TRUE,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + # print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] + # cat(MD[,weighted.mean(FPLine,Weight)]) + # cat(MD[cluster3==13,weighted.mean(Calory_Price,Weight)]) + #cat(MD[cluster3==1,weighted.mean(TOriginalFoodExpenditure_Per,Weight)]) + x<-MD[,weighted.mean(FPLine,Weight),by="cluster3"] + + + # cat(MD[,weighted.mean(TOriginalFoodExpenditure_Per,Weight)],"\n") + # cat(MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE)],"\n") + # cat(MD[,weighted.mean(Calory_Price,Weight,na.rm = TRUE)],"\n") + # cat(MD[cluster3==1,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") + cat(MD[,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") + diff --git a/R/Archive/August 2020/sibzamini.pdf b/R/Archive/August 2020/sibzamini.pdf new file mode 100644 index 00000000..ec1eb012 Binary files /dev/null and b/R/Archive/August 2020/sibzamini.pdf differ diff --git a/R/Archive/December 2020/168 other.R b/R/Archive/December 2020/168 other.R new file mode 100644 index 00000000..881a5c13 --- /dev/null +++ b/R/Archive/December 2020/168 other.R @@ -0,0 +1,312 @@ +# 168-Step8-PovertyStats.R +# +# Copyright © 2018-2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(writexl) + + +FinalCountryResults <- data.table(Year = numeric(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), Durable_Adds_Final = numeric(0), + PovertyDepth = numeric(0),PovertyLine_Final= numeric(0)) +FinalRegionResults <- data.table(Year = numeric(0), + Region=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), Durable_Adds_Final = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0),PovertyLine_Final= numeric(0)) +FinalClusterResults <- data.table(Year = numeric(0), + cluster3=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), Durable_Adds_Final = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0),PovertyLine_Final= numeric(0)) +FinalProvinceResults <- data.table(Year = numeric(0), + ProvinceName=character(0), + SampleSize = integer(0), MeterPrice = numeric(0), + House_Share = numeric(0), FPLine = numeric(0), Bundle_Value = numeric(0), + FoodKCaloriesHH_Per = numeric(0), Engel = numeric(0), Total_Exp_Month_Per = numeric(0), + Total_Exp_Month_Per_nondurable = numeric(0), PovertyLine = numeric(0), Durable_Adds_Final = numeric(0), + PovertyHCR = numeric(0), PoorSampleSize = integer(0), PovertyGap = numeric(0), + PovertyDepth = numeric(0),PovertyLine_Final= numeric(0)) + +OriginalFoodShare <- data.table(Year=NA_integer_,Share=NA_integer_,FinalPoor=NA_integer_)[0] + +year<-98 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"BigEngelTable.rda")) + + #MD<-MD[Region=="Rural"] + + MD <- merge(MD,BigEngelTable[Year==year, + .(cluster3,Region, + PovertyLine,PovertyLine0, + Engel,ModifiedEngel)], + by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine,1,0 )] + MD[,FinalPoor0:=ifelse(Total_Exp_Month_Per_nondurable < PovertyLine0,1,0 )] + cat(MD[,.(weighted.mean(FinalPoor,Weight*Size))]$V1,"\t") + MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + MD10<-MD[,.(HHID,NMiddle,NStudents)] + save(MD10,file=paste0(Settings$HEISProcessedPath,"Y",year,"school.rda")) + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per_nondurable)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per_nondurable)/PovertyLine)^2] + + + MD[,Durable_Adds_Final:=(Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable] + + ################Country################## + + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight)) + ] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ] + X1[,Year:=year] + X1[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight)) + ,by=Region] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ,by=Region] + X1[,Year:=year] + X1[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight)) + ,by=cluster3] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + by=cluster3] + + + X1[,Year:=year] + X1[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + ################Province################## + X1 <- MD[,.(SampleSize=.N, + MeterPrice=weighted.mean(MeterPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(House_Exp/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight)) + ,by="ProvinceName"] + X2 <- MD[FinalPoor==1, + .(PoorSampleSize=.N, + PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)), + ,by="ProvinceName"] + + + X1[,Year:=year] + X1[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","ProvinceName")) + FinalProvinceResults <- rbind(FinalProvinceResults,X) + + + #################################################### + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + #cat(MD[, weighted.mean(FinalPoor0,Weight*Size)],"\t") + #cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + #cat(MD[, weighted.mean(FPLine,Weight*Size)],"\n") + cat(MD[, sum(FinalPoor*Weight*Size)],"\n") + #cat(MD[, sum(Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"tahsil.rda")) + School<-as.data.table(School) + MD<-merge(MD,School,all.x=TRUE,by="HHID") + + DurableD<- MD[ Total_Exp_Month_Per_nondurable>0.8*PovertyLine & + Total_Exp_Month_Per_nondurable<1.2*PovertyLine, + .(.N,Durable_Adds_Final=weighted.mean((Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable,Weight), + PovertyLine=mean(PovertyLine)), + by=.(Region,cluster3)] + + DurableD[,PovertyLine_Final:=PovertyLine*(1+Durable_Adds_Final)] + ## Total_Exp_Month/TOriginalFoodExpenditure * FPLIne *(Total_Exp_Month_nondurable+Durable_NoDep+Durable_Emergency)/Total_Exp_Month_nondurable ) + MD <- merge(MD,DurableD[,.(cluster3,Region,PovertyLine_Final)],by=c("Region","cluster3")) + + Z1 <- MD[,.(Share=weighted.mean(TOriginalFoodExpenditure/FoodExpenditure,Weight)),by=FinalPoor] + Z1[,Year:=year] + + OriginalFoodShare <- rbind(OriginalFoodShare,Z1) + + #cat(MD[as.numeric(Decile)<2,weighted.mean(Total_Exp_Month_Per,Weight)],"\t") + #cat(MD[as.numeric(Decile)>9,weighted.mean(Total_Exp_Month_Per,Weight)]) + + #cat(MD[,weighted.mean(Total_Exp_Month_Per,Weight)],"\t") + #cat(MD[,weighted.mean(FoodExpenditure_Per,Weight)],"\t") + + # a<-MD[,weighted.mean(PovertyLine,Weight)] + # MD[,F_P:=ifelse(Total_Exp_Month_Per_nondurable < a,1,0 )] + #cat(MD[, weighted.mean(F_P,Weight*Size)],"\t") +} +MD[FinalPoor==1,sum(Weight*Size),by=Region] +MD[CountyCode==2301 & FinalPoor==1,sum(Weight*Size)] + +MD[ProvinceCode==11 & CountyCode!=1105 & Region=="Urban", weighted.mean(FinalPoor,Weight*Size)] +MD[ProvinceCode==30 & Region=="Rural", weighted.mean(FinalPoor,Weight*Size)] +MD[Region=="Rural", weighted.mean(FinalPoor,Weight*Size),by=ProvinceName] + +MD[,1-weighted.mean(Knowledge,Weight,na.rm = TRUE)] +MD[,1-weighted.mean(Knowledge,Weight,na.rm = TRUE),by="Region"] +MD[,1-weighted.mean(Knowledge,Weight,na.rm = TRUE),by="ProvinceName"][order(V1)] + +MD[FinalPoor==1,1-weighted.mean(Knowledge,Weight,na.rm = TRUE)] +MD[FinalPoor==1,1-weighted.mean(Knowledge,Weight,na.rm = TRUE),by="Region"] +MD[FinalPoor==1,1-weighted.mean(Knowledge,Weight,na.rm = TRUE),by="ProvinceName"] + +MD[,weighted.mean(bathroom=="FALSE",Weight,na.rm = TRUE)] +MD[,weighted.mean(bathroom=="FALSE",Weight,na.rm = TRUE),by="Region"] +MD[,weighted.mean(bathroom=="FALSE",Weight,na.rm = TRUE),by="ProvinceName"] + +MD[,weighted.mean(bathroom=="FALSE",Weight,na.rm = TRUE)] +MD[,weighted.mean(bathroom=="FALSE",Weight,na.rm = TRUE),by="Region"] +MD[,weighted.mean(bathroom=="FALSE",Weight,na.rm = TRUE),by="ProvinceName"] + +MD[FinalPoor==1,weighted.mean(bathroom=="False",Weight,na.rm = TRUE)] +MD[FinalPoor==1,weighted.mean(bathroom=="False",Weight,na.rm = TRUE),by="Region"] +MD[FinalPoor==1,weighted.mean(bathroom=="False",Weight,na.rm = TRUE),by="ProvinceName"] +MD[FinalPoor==1 & ProvinceCode==11,weighted.mean(bathroom=="False",Weight,na.rm = TRUE)] + +MD[,weighted.mean(pipewater=="False",Weight,na.rm = TRUE)] +MD[,weighted.mean(pipewater=="False",Weight,na.rm = TRUE),by="Region"] +#MD[FinalPoor==1,weighted.mean(pipewater=="False",Weight,na.rm = TRUE),by="ProvinceName"] +MD[FinalPoor==0 & ProvinceCode==11,weighted.mean(pipewater=="False",Weight,na.rm = TRUE)] + +MD[,weighted.mean(No_Insurance,Weight,na.rm = TRUE)] +MD[,weighted.mean(No_Insurance,Weight,na.rm = TRUE),by="Region"] +#MD[FinalPoor==1,weighted.mean(pipewater=="False",Weight,na.rm = TRUE),by="ProvinceName"] +MD[FinalPoor==1 & ProvinceCode==11,weighted.mean(No_Insurance,Weight,na.rm = TRUE)] + +Pooldar<-MD[as.numeric((Decile))>7] +Pooldar[,sum(Weight*Size),by=ProvinceName][order(V1)] + +#A1<-MD[,weighted.mean(Total_Exp_Month,Weight),by=Decile] +#A2<-MD[,weighted.mean(Total_Exp_Month,Weight),by=ProvinceCode] +#A3<-MD[,weighted.mean(Total_Exp_Month_Per,Weight),by=Decile] +#A4<-MD[,weighted.mean(Total_Exp_Month_Per,Weight),by=ProvinceCode] + +#A5<-MD[,weighted.mean(Total_Exp_Month,Weight),by=c("Decile","ProvinceCode")] +#A6<-MD[,weighted.mean(Total_Exp_Month_Per,Weight),by=c("Decile","ProvinceCode")] +#write.csv(A5,file="A5.csv") +#write.csv(A6,file="A6.csv") + +AA<-MD[,.(food=weighted.mean(FoodExpenditure_Per,Weight), + total=weighted.mean(Total_Exp_Month_Per,Weight), + foodshare=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + houseshare=weighted.mean(House_Exp/Total_Exp_Month,Weight), + pooshakshare=weighted.mean(Cloth_Exp/Total_Exp_Month,Weight), + Transportation_Exp=weighted.mean(Transportation_Exp/Total_Exp_Month,Weight), + Amusement_Exp=weighted.mean(Amusement_Exp/Total_Exp_Month,Weight), + behdasht=weighted.mean(Hygiene_Exp/Total_Exp_Month,Weight)),by=Region] + +Pop<-MD[,sum(Weight*Size)] + +MD[TFoodKCaloriesHH_Per<1200,sum(Weight*Size)/Pop] +MD[TFoodKCaloriesHH_Per>1200 & TFoodKCaloriesHH_Per<1500,sum(Weight*Size)/Pop] +MD[TFoodKCaloriesHH_Per>1500 & TFoodKCaloriesHH_Per<1800,sum(Weight*Size)/Pop] +MD[TFoodKCaloriesHH_Per>1800 & TFoodKCaloriesHH_Per<2100,sum(Weight*Size)/Pop] +MD[TFoodKCaloriesHH_Per>2100 & TFoodKCaloriesHH_Per<3000,sum(Weight*Size)/Pop] +MD[TFoodKCaloriesHH_Per>3000,sum(Weight*Size)/Pop] + +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=c("Region","Decile")][order(Region,Decile)] + +MD[,Under2100:=ifelse(TFoodKCaloriesHH_Per<2100,1,0)] +MD[,weighted.mean(Under2100,Weight*Size)] +MD[,weighted.mean(Under2100,Weight*Size),by=Region] +MD[,weighted.mean(Under2100,Weight*Size),by=ProvinceCode][order(ProvinceCode)] + +write_xlsx(FinalClusterResults,path=paste0(Settings$HEISResultsPath,"/ClusterResults.xlsx"),col_names=T) +write_xlsx(FinalCountryResults,path=paste0(Settings$HEISResultsPath,"/CountryResults.xlsx"),col_names=T) +write_xlsx(FinalRegionResults,path=paste0(Settings$HEISResultsPath,"/RegionResults.xlsx"),col_names=T) +#write_xlsx(FinalProvinceResults,path=paste0(Settings$HEWeightsultsPath,"/ProvinceResults.xlsx"),col_names=T) + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") \ No newline at end of file diff --git a/R/Archive/December 2020/Map.R b/R/Archive/December 2020/Map.R new file mode 100644 index 00000000..5e9c72b3 --- /dev/null +++ b/R/Archive/December 2020/Map.R @@ -0,0 +1,52 @@ +#Engle's Map +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 +rm(list=ls()) + +library(data.table) +library(readxl) +library(rworldmap) +library(rgdal) + + +Engle <- data.table(read_excel("Engle.xlsx","Province")) # Data to be plotted, see the excell file + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(Engle,nameMap="ProvMap", # Joining the data to map + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) +MapData2<-MapData + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +#Urban Areas +mapUrban <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "b", + colourPalette = "heat", + mapTitle = paste0("Engle Rate in Urban Areas"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapUrban + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) + + diff --git a/R/Archive/December 2020/Poverty Indices2.R b/R/Archive/December 2020/Poverty Indices2.R new file mode 100644 index 00000000..97559b3f --- /dev/null +++ b/R/Archive/December 2020/Poverty Indices2.R @@ -0,0 +1,815 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Indices2 =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) +library(ggplot2) + +X1 <- data.table(Year=NA_integer_,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +X2 <- data.table(Year=NA_integer_,Region=NA_character_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + + +X3 <- data.table(Year=NA_integer_,Decile=NA_integer_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +Province<-data.table(Year=NA_integer_,ProvinceCode=NA_integer_,Total_Exp_Month_Per=NA_real_) + +Y1 <- data.table(Year=NA_integer_,H=NA_real_) + +Y2 <- data.table(Year=NA_integer_,H=NA_real_,Region=NA_character_) + +Y3 <- data.table(Year=NA_integer_,H=NA_real_,ProvinceCode=NA_integer_) + +Z1 <- data.table(Year=NA_integer_,A=NA_real_) + +Z2 <- data.table(Year=NA_integer_,A=NA_real_,Region=NA_character_) + +Z3 <- data.table(Year=NA_integer_,A=NA_real_,ProvinceCode=NA_integer_) + +Q1 <- data.table(Year=NA_integer_,MPI=NA_real_) + +Q2 <- data.table(Year=NA_integer_,MPI=NA_real_,Region=NA_character_) + +Q3 <- data.table(Year=NA_integer_,MPI=NA_real_,ProvinceCode=NA_integer_) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy,G125,G1253)],by="HHID") + MD[,Decile:=NULL] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + if (year==98){ + names(Deciles)<-c("HHID","Decile","Percentile") + } + + MD<-merge(MD,Deciles,by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + P1<-P1[Age<=16 & Age>=6,.(HHID,Age,Literate,Student)] + P1<-P1[Literate==TRUE | Literate==FALSE] + P1<-P1[,Lit:=ifelse(Literate==FALSE | Student==FALSE,100,1)] + P<-P1[,lapply(.SD,sum),by="HHID"] + P<-P[,Knowledge:=ifelse(Lit>=100,0,1)] + MD<-merge(MD,P[,.(HHID,Knowledge)],all.x = TRUE) + + + + MD[,Low_Calorie:=ifelse(FoodKCaloriesHH_Per<2100,1,0)] + MD[,Low_Protein:=ifelse(FoodProtein_Per<60,1,0)] + MD[,No_Insurance:=ifelse(G1253==0,1,0)] + MD[,House_High_Share:=ifelse(((G041+G042)/All>0.3 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Urban") | + ((G041+G042)/All>0.2 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Rural"),1,0)] + if (year==90){ + MD[,phone:=ifelse(is.na(phone),"True","False")] + MD[,internet:=ifelse(is.na(internet),"True","False")] + } + + MD[,Tech_low:=ifelse((phone=="False" & cellphone=="False" & + computer=="False") | + (phone=="False" & cellphone=="False" & + internet=="False") | + (phone=="False" & + computer=="False" & internet=="False") | + ( cellphone=="False" & + computer=="False" & internet=="False"),1,0)] + MD[,Yakhchal:=ifelse(refrigerator=="True" | freezer=="True" | + frez_refrig=="True","True","False")] + MD[,Equip_low:=ifelse((Yakhchal=="False" & washer=="False" & + oven=="False") | + (Yakhchal=="False" & washer=="False" & + tvcr=="False") | + (Yakhchal=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & oven=="False") | + ( washer=="False" & Yakhchal=="False") | + ( washer=="False" & tvcr=="False") | + ( tvcr=="False" & oven=="False") | + ( tvcr=="False" & Yakhchal=="False") | + ( Yakhchal=="False" & oven=="False") ,1,0)] + + School<-MD[,.(HHID,Knowledge,No_Insurance,bathroom,pipewater)] + save(School,file=paste0(Settings$HEISProcessedPath,"Y",year,"tahsil.rda")) + + A4<-MD[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE)),by=ProvinceCode] + + A1<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE))] + + A2<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Region] + + + A3<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Decile] + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + A3[,Year:=year] + X3 <- rbind(X3,A3) + + A4[,Year:=year] + Province <- rbind(Province,A4) + + MD[,Illiterte:=ifelse(HLiterate==FALSE,1,0)] + MD[,No_knowledge:=ifelse(Knowledge==1 | is.na(Knowledge),0,1)] + MD[,High_Energy_Share:=ifelse((G044+G045)/All >0.07 ,1,0)] + MD[,No_electricity:=ifelse(electricity=="False" ,1,0)] + MD[,No_cookefuel:=ifelse(cookfuel!="pipedgas",1,0)] + MD[,No_pipewater:=ifelse(pipewater=="False",1,0)] + MD[,Small_House:=ifelse((area/Size)<16,1,0)] + MD[,No_Skeleton:=1-ifelse(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone",1,0)] + MD[,No_bathroom:=ifelse(bathroom=="False",1,0)] + MD[,No_ego:=ifelse(ego=="False",1,0)] + MD[,No_car:=ifelse(car=="False",1,0)] + + + W_Edu1<-0.1 + W_Edu2<-0.1 + W_Energy1<-1/15 + W_Energy2<-1/15 + W_Energy3<-1/15 + W_Health1<-1/20 + W_Health2<-1/20 + W_Health3<-1/20 + W_Health4<-1/20 + W_House1<-1/20 + W_House2<-1/20 + W_House3<-1/20 + W_House4<-1/20 + W_Equip1<-0 + W_Equip2<-1/15 + W_Equip3<-1/15 + W_Equip4<-1/15 + + MD[,Poor_Edu:=ifelse(Illiterte==1 | No_knowledge==1,1,0)] + a<-MD[,weighted.mean(Poor_Edu,Weight),by=ProvinceCode] + + MD[,Poor_Energy:=ifelse(High_Energy_Share==1 | No_electricity==1 | + No_cookefuel==1,1,0)] + a<-MD[,weighted.mean(Poor_Energy,Weight),by=ProvinceCode] + + MD[,Poor_Health:=ifelse((Low_Calorie==1 & Low_Protein==1) | + No_Insurance==1 | No_pipewater==1,1,0)] + a<-MD[,weighted.mean(Poor_Health,Weight),by=ProvinceCode] + + MD[,Poor_House:=ifelse(Small_House==1 | House_High_Share==1 | + No_Skeleton==1 | No_bathroom==1,1,0)] + a<-MD[,weighted.mean(Poor_House,Weight),by=ProvinceCode] + + MD[,Poor_Equip:=ifelse(No_car==1 & + (Equip_low==1 | Tech_low==1),1,0)] + a<-MD[,weighted.mean(Poor_Equip,Weight),by=ProvinceCode] + + MD[,Poverty_Score:=W_Edu1*Illiterte+W_Edu2*No_knowledge+ + W_Energy1*High_Energy_Share+W_Energy2*No_electricity+ + W_Energy3*No_cookefuel+ + W_Health1*Low_Calorie+W_Health2*Low_Protein+ + W_Health3*No_Insurance+W_Health4*No_pipewater+ + W_House1*Small_House+W_House2*House_High_Share+ + W_House3*No_Skeleton+W_House4*No_bathroom+ + W_Equip1*No_ego+W_Equip2*No_car+ + W_Equip3*Equip_low+W_Equip4*Tech_low] + + z1<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight))] + + z2<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Region] + + z3<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Decile] + + z4<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=ProvinceCode] + + + MD[,FinalPoor:=ifelse(Poverty_Score>0.2,1,0)] + MD[,Poverty_Score_Revised:=ifelse(Poverty_Score>0.2,Poverty_Score,0)] + B1<-MD[,.(H=weighted.mean(FinalPoor,Weight))] + B2<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=Region] + B3<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=ProvinceCode] + MD[,weighted.mean(FinalPoor,Weight),by=Decile] + + cat(MD[,weighted.mean(FinalPoor,Weight)],"\n") + + B1[,Year:=year] + Y1 <- rbind(Y1,B1) + + B2[,Year:=year] + Y2 <- rbind(Y2,B2) + + B3[,Year:=year] + Y3 <- rbind(Y3,B3) + #write.csv(Y3,file = "Y3.csv") + + C1<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor))] + C2<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=Region] + C3<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=ProvinceCode] + + C1[,Year:=year] + Z1 <- rbind(Z1,C1) + + C2[,Year:=year] + Z2 <- rbind(Z2,C2) + + C3[,Year:=year] + Z3 <- rbind(Z3,C3) + + D1<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor)))] + D2<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=Region] + D3<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=ProvinceCode] + + D1[,Year:=year] + Q1 <- rbind(Q1,D1) + + D2[,Year:=year] + Q2 <- rbind(Q2,D2) + + D3[,Year:=year] + Q3 <- rbind(Q3,D3) + +} + + + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) +D1<-P1[,.(HHID,Age,Literate,Student,Sex)] +D1<-merge(D1,MD[,.(HHID,ProvinceCode,Decile,Weight,Region)],all.x = TRUE) +D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Region"] +x1<-D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="ProvinceCode"] +x2<-D1[Age>7,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Decile"] + +a1<-MD[,weighted.mean(HLiterate==FALSE,Weight),by="ProvinceCode"][order(ProvinceCode)] +a2<-MD[,weighted.mean(Knowledge==0,Weight,na.rm = TRUE),by="ProvinceCode"][order(ProvinceCode)] + + +X1<-X1[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X2<-X2[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X3<-X3[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] + + +png(file="C:/IRHEIS/R/1.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(HLiterate), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 22) +dev.off() + +png(file="C:/IRHEIS/R/2.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/3.png",width=1200, height=600) +ggplot(X3)+ +geom_line(mapping = aes(x=Year,y=HLiterate,col=factor(Decile), +linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + +############################################################################### +png(file="C:/IRHEIS/R/4.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Knowledge), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/5.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/6.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Knowledge,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/7.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Energy_Share), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/8.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/9.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Energy_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/10.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(electricity), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/11.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/12.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=electricity,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/13.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(cookfuel), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/14.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/15.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=cookfuel,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/16.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Calorie), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/17.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/18.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Calorie,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/19.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Protein), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/20.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/21.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Protein,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/22.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(No_Insurance), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/23.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/24.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=No_Insurance,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/25.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(pipewater), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/26.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/27.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=pipewater,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/28.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Area_Per), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/29.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/30.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Area_Per,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/31.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(skeleton), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/32.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/33.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=skeleton,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/34.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(House_High_Share), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/35.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/36.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=House_High_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/37.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/38.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/39.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=bathroom,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/40.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/41.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/42.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=ego,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/43.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(car), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/44.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/45.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=car,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/46.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Tech_low), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/47.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/48.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Tech_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/49.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Equip_low), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/50.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/51.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Equip_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + + + + +write.csv(X1,file="X1.csv") +write.csv(X2,file="X2.csv") +write.csv(X3,file="X3.csv") +write.csv(X4,file="X4.csv") +#write.csv(Province,file="Province.csv") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/December 2020/Poverty Indices22.R b/R/Archive/December 2020/Poverty Indices22.R new file mode 100644 index 00000000..8ee5f65c --- /dev/null +++ b/R/Archive/December 2020/Poverty Indices22.R @@ -0,0 +1,812 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Indices2 =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) +library(ggplot2) + +X1 <- data.table(Year=NA_integer_,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +X2 <- data.table(Year=NA_integer_,Region=NA_character_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + + +X3 <- data.table(Year=NA_integer_,Decile=NA_integer_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +Province<-data.table(Year=NA_integer_,ProvinceCode=NA_integer_,Total_Exp_Month_Per=NA_real_) + +Y1 <- data.table(Year=NA_integer_,H=NA_real_) + +Y2 <- data.table(Year=NA_integer_,H=NA_real_,Region=NA_character_) + +Y3 <- data.table(Year=NA_integer_,H=NA_real_,ProvinceCode=NA_integer_) + +Z1 <- data.table(Year=NA_integer_,A=NA_real_) + +Z2 <- data.table(Year=NA_integer_,A=NA_real_,Region=NA_character_) + +Z3 <- data.table(Year=NA_integer_,A=NA_real_,ProvinceCode=NA_integer_) + +Q1 <- data.table(Year=NA_integer_,MPI=NA_real_) + +Q2 <- data.table(Year=NA_integer_,MPI=NA_real_,Region=NA_character_) + +Q3 <- data.table(Year=NA_integer_,MPI=NA_real_,ProvinceCode=NA_integer_) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy,G125,G1253)],by="HHID") + MD[,Decile:=NULL] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + if (year==98){ + names(Deciles)<-c("HHID","Decile","Percentile") + } + + MD<-merge(MD,Deciles,by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + P1<-P1[Age<=16 & Age>=6,.(HHID,Age,Literate,Student)] + P1<-P1[Literate==TRUE | Literate==FALSE] + P1<-P1[,Lit:=ifelse(Literate==FALSE | Student==FALSE,100,1)] + P<-P1[,lapply(.SD,sum),by="HHID"] + P<-P[,Knowledge:=ifelse(Lit>=100,0,1)] + MD<-merge(MD,P[,.(HHID,Knowledge)],all.x = TRUE) + + + + MD[,Low_Calorie:=ifelse(FoodKCaloriesHH_Per<2100,1,0)] + MD[,Low_Protein:=ifelse(FoodProtein_Per<60,1,0)] + MD[,No_Insurance:=ifelse(G1253==0,1,0)] + MD[,House_High_Share:=ifelse(((G041+G042)/All>0.3 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Urban") | + ((G041+G042)/All>0.2 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Rural"),1,0)] + if (year==90){ + MD[,phone:=ifelse(is.na(phone),"True","False")] + MD[,internet:=ifelse(is.na(internet),"True","False")] + } + + MD[,Tech_low:=ifelse((phone=="False" & cellphone=="False" & + computer=="False") | + (phone=="False" & cellphone=="False" & + internet=="False") | + (phone=="False" & + computer=="False" & internet=="False") | + ( cellphone=="False" & + computer=="False" & internet=="False"),1,0)] + MD[,Yakhchal:=ifelse(refrigerator=="True" | freezer=="True" | + frez_refrig=="True","True","False")] + MD[,Equip_low:=ifelse((Yakhchal=="False" & washer=="False" & + oven=="False") | + (Yakhchal=="False" & washer=="False" & + tvcr=="False") | + (Yakhchal=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & oven=="False") | + ( washer=="False" & Yakhchal=="False") | + ( washer=="False" & tvcr=="False") | + ( tvcr=="False" & oven=="False") | + ( tvcr=="False" & Yakhchal=="False") | + ( Yakhchal=="False" & oven=="False") ,1,0)] + + A4<-MD[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE)),by=ProvinceCode] + + A1<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE))] + + A2<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Region] + + + A3<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Decile] + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + A3[,Year:=year] + X3 <- rbind(X3,A3) + + A4[,Year:=year] + Province <- rbind(Province,A4) + + MD[,Illiterte:=ifelse(HLiterate==FALSE,1,0)] + MD[,No_knowledge:=ifelse(Knowledge==1 | is.na(Knowledge),0,1)] + MD[,High_Energy_Share:=ifelse((G044+G045)/All >0.07 ,1,0)] + MD[,No_electricity:=ifelse(electricity=="False" ,1,0)] + MD[,No_cookefuel:=ifelse(cookfuel!="pipedgas",1,0)] + MD[,No_pipewater:=ifelse(pipewater=="False",1,0)] + MD[,Small_House:=ifelse((area/Size)<16,1,0)] + MD[,No_Skeleton:=1-ifelse(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone",1,0)] + MD[,No_bathroom:=ifelse(bathroom=="False",1,0)] + MD[,No_ego:=ifelse(ego=="False",1,0)] + MD[,No_car:=ifelse(car=="False",1,0)] + + + W_Edu1<-0.1 + W_Edu2<-0.1 + W_Energy1<-1/15 + W_Energy2<-1/15 + W_Energy3<-1/15 + W_Health1<-1/20 + W_Health2<-1/20 + W_Health3<-1/20 + W_Health4<-1/20 + W_House1<-1/20 + W_House2<-1/20 + W_House3<-1/20 + W_House4<-1/20 + W_Equip1<-0 + W_Equip2<-1/15 + W_Equip3<-1/15 + W_Equip4<-1/15 + + MD[,Poor_Edu:=ifelse(Illiterte==1 | No_knowledge==1,1,0)] + a<-MD[,weighted.mean(Poor_Edu,Weight),by=ProvinceCode] + + MD[,Poor_Energy:=ifelse(High_Energy_Share==1 | No_electricity==1 | + No_cookefuel==1,1,0)] + a<-MD[,weighted.mean(Poor_Energy,Weight),by=ProvinceCode] + + MD[,Poor_Health:=ifelse((Low_Calorie==1 & Low_Protein==1) | + No_Insurance==1 | No_pipewater==1,1,0)] + a<-MD[,weighted.mean(Poor_Health,Weight),by=ProvinceCode] + + MD[,Poor_House:=ifelse(Small_House==1 | House_High_Share==1 | + No_Skeleton==1 | No_bathroom==1,1,0)] + a<-MD[,weighted.mean(Poor_House,Weight),by=ProvinceCode] + + MD[,Poor_Equip:=ifelse(No_car==1 & + (Equip_low==1 | Tech_low==1),1,0)] + a<-MD[,weighted.mean(Poor_Equip,Weight),by=ProvinceCode] + + MD[,Poverty_Score:=W_Edu1*Illiterte+W_Edu2*No_knowledge+ + W_Energy1*High_Energy_Share+W_Energy2*No_electricity+ + W_Energy3*No_cookefuel+ + W_Health1*Low_Calorie+W_Health2*Low_Protein+ + W_Health3*No_Insurance+W_Health4*No_pipewater+ + W_House1*Small_House+W_House2*House_High_Share+ + W_House3*No_Skeleton+W_House4*No_bathroom+ + W_Equip1*No_ego+W_Equip2*No_car+ + W_Equip3*Equip_low+W_Equip4*Tech_low] + + z1<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight))] + + z2<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Region] + + z3<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Decile] + + z4<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=ProvinceCode] + + + MD[,FinalPoor:=ifelse(Poverty_Score>0.2,1,0)] + MD[,Poverty_Score_Revised:=ifelse(Poverty_Score>0.2,Poverty_Score,0)] + B1<-MD[,.(H=weighted.mean(FinalPoor,Weight))] + B2<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=Region] + B3<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=ProvinceCode] + MD[,weighted.mean(FinalPoor,Weight),by=Decile] + + cat(MD[,weighted.mean(FinalPoor,Weight)],"\n") + + B1[,Year:=year] + Y1 <- rbind(Y1,B1) + + B2[,Year:=year] + Y2 <- rbind(Y2,B2) + + B3[,Year:=year] + Y3 <- rbind(Y3,B3) + #write.csv(Y3,file = "Y3.csv") + + C1<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor))] + C2<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=Region] + C3<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=ProvinceCode] + + C1[,Year:=year] + Z1 <- rbind(Z1,C1) + + C2[,Year:=year] + Z2 <- rbind(Z2,C2) + + C3[,Year:=year] + Z3 <- rbind(Z3,C3) + + D1<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor)))] + D2<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=Region] + D3<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=ProvinceCode] + + D1[,Year:=year] + Q1 <- rbind(Q1,D1) + + D2[,Year:=year] + Q2 <- rbind(Q2,D2) + + D3[,Year:=year] + Q3 <- rbind(Q3,D3) + +} + + + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) +D1<-P1[,.(HHID,Age,Literate,Student,Sex)] +D1<-merge(D1,MD[,.(HHID,ProvinceCode,Decile,Weight,Region)],all.x = TRUE) +D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Region"] +x1<-D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="ProvinceCode"] +x2<-D1[Age>7,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Decile"] + +a1<-MD[,weighted.mean(HLiterate==FALSE,Weight),by="ProvinceCode"][order(ProvinceCode)] +a2<-MD[,weighted.mean(Knowledge==0,Weight,na.rm = TRUE),by="ProvinceCode"][order(ProvinceCode)] + + +X1<-X1[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X2<-X2[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X3<-X3[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] + + +png(file="C:/IRHEIS/R/1.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(HLiterate), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 22) +dev.off() + +png(file="C:/IRHEIS/R/2.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/3.png",width=1200, height=600) +ggplot(X3)+ +geom_line(mapping = aes(x=Year,y=HLiterate,col=factor(Decile), +linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + +############################################################################### +png(file="C:/IRHEIS/R/4.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Knowledge), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/5.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/6.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Knowledge,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/7.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Energy_Share), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/8.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/9.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Energy_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/10.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(electricity), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/11.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/12.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=electricity,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/13.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(cookfuel), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/14.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/15.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=cookfuel,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/16.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Calorie), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/17.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/18.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Calorie,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/19.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Protein), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/20.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/21.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Protein,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/22.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(No_Insurance), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/23.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/24.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=No_Insurance,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/25.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(pipewater), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/26.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/27.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=pipewater,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/28.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Area_Per), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/29.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/30.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Area_Per,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/31.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(skeleton), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/32.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/33.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=skeleton,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/34.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(House_High_Share), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/35.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/36.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=House_High_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/37.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/38.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/39.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=bathroom,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/40.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/41.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/42.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=ego,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/43.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(car), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/44.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/45.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=car,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/46.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Tech_low), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/47.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/48.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Tech_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/49.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Equip_low), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/50.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/51.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Equip_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + + + + +write.csv(X1,file="X1.csv") +write.csv(X2,file="X2.csv") +write.csv(X3,file="X3.csv") +write.csv(X4,file="X4.csv") +#write.csv(Province,file="Province.csv") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/Deciles Matrix.R b/R/Archive/Deciles Matrix.R new file mode 100644 index 00000000..a8516b84 --- /dev/null +++ b/R/Archive/Deciles Matrix.R @@ -0,0 +1,443 @@ +#170-Deciling for normal calculations.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Deciles matrix =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + + ###Nominal- Country + MD<- MD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + MD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + MD[,Decile:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + MD[,Percentile:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + + A1<-MD[(`71111`+`71112`+`71116`+`71117`>0), + .(A1=weighted.mean(`71111`+`71112`+`71116`+ + `71117`,Weight)),by=Decile] + A2<-MD[(`91128`+`91129`>0), + .(A2=weighted.mean(`91128`+`91129`,Weight)),by=Decile] + A3<-MD[`53112`>0 ,.(A3=weighted.mean(`53112`,Weight)),by=Decile] + A4<-MD[`53116`>0 , .(A4=weighted.mean(`53116`,Weight)),by=Decile] + A5<-MD[`53113`>0 ,.(A5=weighted.mean(`53113`,Weight)),by=Decile] + A6<-MD[`82113`>0, .(A6=weighted.mean(`82113`,Weight)),by=Decile] + A7<-MD[`53125`>0,.(A7=weighted.mean(`53125`,Weight)),by=Decile] + A8<-MD[`91311`>0 ,.(A8= weighted.mean(`91311`,Weight)),by=Decile] + A9<-MD[`72111`>0,.(A9=weighted.mean(`72111`,Weight)),by=Decile] + if (year!=90 & year!=92 & year!=93 & year!=95){ + A10<-MD[`72118`>0 ,.(A10=weighted.mean(`72118`,Weight)),by=Decile] + } + A11<-MD[`72319`>0 ,.(A11=weighted.mean(`72319`,Weight)),by=Decile] + + MD<-merge(MD,A1,by="Decile") + MD<-merge(MD,A2,by="Decile") + MD<-merge(MD,A3,by="Decile") + MD<-merge(MD,A4,by="Decile") + MD<-merge(MD,A5,by="Decile") + MD<-merge(MD,A6,by="Decile") + MD<-merge(MD,A7,by="Decile") + MD<-merge(MD,A8,by="Decile") + MD[,A8:=as.numeric(A8)] + MD<-merge(MD,A9,by="Decile") + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD<-merge(MD,A10,by="Decile") + } + MD<-merge(MD,A11,by="Decile") + + MD[car=="True",Added1:=A1] + MD[tvcr=="True",Added2:=A2] + MD[freezer=="True" | frez_refrig=="True" | refrigerator=="True", + Added3:=A3] + MD[oven=="True",Added4:=A4] + MD[washer=="True",Added5:=A5] + MD[cellphone=="True",Added6:=A6] + MD[cooler_gas=="True",Added7:=A7] + MD[computer=="True",Added8:=A8] + MD[car=="True",Added9:=A9] + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD[car=="True",Added10:=A10] + } + MD[car=="True",Added11:=A11] + + x<-MD[,.(HHID,Decile,car,Added1)] + + if (year!=90 & year!=92 & year!=93 & year!=95){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111", "72118","72319") + } + + if (year==90 | year==92 | year==93 | year==95){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111","72319") + } + + MD[, Total_Depreciated_Durable := Reduce(`+`, .SD), .SDcols=dep] + MD[is.na(MD)] <- 0 + + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added10+Added11] + } + if (year==90 | year==92 | year==93 | year==95){ + MD[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added11] + } + + #Calculate Monthly Total Expenditures + nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" + ,"Add_to_NonDurable" + ,"Added" + #, "Total_Depreciated_Durable" + ) + w <- c(nw, "Medical_Exp", + "Durable_NoDep","Durable_Emergency") + + + MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + MD[,weighted.mean(Total_Exp_Month,Weight)] + MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + ################################################################### + + + + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,#Calorie_Need_NutritionInstitute, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_NutritionInstitute/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_NutritionInstitute/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + + X <- SMD[,.(N=.N,wi1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wi2=weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE), + pi1=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + pi2=weighted.mean(MetrPrice,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,wi:=wi1+wi2] + X[,wi1:=wi1/wi] + X[,wi2:=wi2/wi] + XTeh<-X[NewArea_Name=="Sh_Tehran"] + wk1<-XTeh$wi1 # k == Sh_Tehran + wk2<-XTeh$wi2 + pk1<-XTeh$pi1 + pk2<-XTeh$pi2 + + X[,SimpleIndex:= .5 * pi1/pk1 + .5 * pi2/pk2] + X[,AnotherIndex:= wi1 * pi1/pk1 + wi2 * pi2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wi1)/2 * log(pi1/pk1) + (wk2+wi2)/2 * log(pi2/pk2) ) ] + + SMD<-merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/TornqvistIndex] + + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + + + Deciles1<-SMD[,.(HHID,Decile)] + names(Deciles1)<-c("HHID","Decile1") + + save(Deciles1,file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles1.rda")) + + MD[,Decile:=NULL] + MD<-merge(MD,Deciles1) + a<-MD[,weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight, + na.rm=TRUE),by=Decile1] + b<-MD[,weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight, + na.rm=TRUE),by=c("Decile1","Region")] +} + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + MD<-merge(MD,Total[,.(HHID,G041,G042)]) + + MD[,HouseandEnergy_Exp:=ifelse(tenure=="Rented" | tenure=="Mortgage",HouseandEnergy_Exp+G041+G042,HouseandEnergy_Exp)] + + ###Nominal- Country + MD<- MD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + MD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + MD[,Decile:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + MD[,Percentile:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + + A1<-MD[(`71111`+`71112`+`71116`+`71117`>0), + .(A1=weighted.mean(`71111`+`71112`+`71116`+ + `71117`,Weight)),by=Decile] + A2<-MD[(`91128`+`91129`>0), + .(A2=weighted.mean(`91128`+`91129`,Weight)),by=Decile] + A3<-MD[`53112`>0 ,.(A3=weighted.mean(`53112`,Weight)),by=Decile] + A4<-MD[`53116`>0 , .(A4=weighted.mean(`53116`,Weight)),by=Decile] + A5<-MD[`53113`>0 ,.(A5=weighted.mean(`53113`,Weight)),by=Decile] + A6<-MD[`82113`>0, .(A6=weighted.mean(`82113`,Weight)),by=Decile] + A7<-MD[`53125`>0,.(A7=weighted.mean(`53125`,Weight)),by=Decile] + A8<-MD[`91311`>0 ,.(A8= weighted.mean(`91311`,Weight)),by=Decile] + A9<-MD[`72111`>0,.(A9=weighted.mean(`72111`,Weight)),by=Decile] + if (year!=90 & year!=92 & year!=93 & year!=95){ + A10<-MD[`72118`>0 ,.(A10=weighted.mean(`72118`,Weight)),by=Decile] + } + A11<-MD[`72319`>0 ,.(A11=weighted.mean(`72319`,Weight)),by=Decile] + + MD<-merge(MD,A1,by="Decile") + MD<-merge(MD,A2,by="Decile") + MD<-merge(MD,A3,by="Decile") + MD<-merge(MD,A4,by="Decile") + MD<-merge(MD,A5,by="Decile") + MD<-merge(MD,A6,by="Decile") + MD<-merge(MD,A7,by="Decile") + MD<-merge(MD,A8,by="Decile") + MD[,A8:=as.numeric(A8)] + MD<-merge(MD,A9,by="Decile") + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD<-merge(MD,A10,by="Decile") + } + MD<-merge(MD,A11,by="Decile") + + MD[car=="True",Added1:=A1] + MD[tvcr=="True",Added2:=A2] + MD[freezer=="True" | frez_refrig=="True" | refrigerator=="True", + Added3:=A3] + MD[oven=="True",Added4:=A4] + MD[washer=="True",Added5:=A5] + MD[cellphone=="True",Added6:=A6] + MD[cooler_gas=="True",Added7:=A7] + MD[computer=="True",Added8:=A8] + MD[car=="True",Added9:=A9] + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD[car=="True",Added10:=A10] + } + MD[car=="True",Added11:=A11] + + x<-MD[,.(HHID,Decile,car,Added1)] + + if (year!=90 & year!=92 & year!=93 & year!=95){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111", "72118","72319") + } + + if (year==90 | year==92 | year==93 | year==95){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111","72319") + } + + MD[, Total_Depreciated_Durable := Reduce(`+`, .SD), .SDcols=dep] + MD[is.na(MD)] <- 0 + + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added10+Added11] + } + if (year==90 | year==92 | year==93 | year==95){ + MD[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added11] + } + + #Calculate Monthly Total Expenditures + nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" + ,"Add_to_NonDurable" + ,"Added" + #, "Total_Depreciated_Durable" + ) + w <- c(nw, "Medical_Exp", + "Durable_NoDep","Durable_Emergency") + + + MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + MD[,weighted.mean(Total_Exp_Month,Weight)] + MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + ################################################################### + + + + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,#Calorie_Need_NutritionInstitute, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_NutritionInstitute/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_NutritionInstitute/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + + X <- SMD[,.(N=.N,wi1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wi2=weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE), + pi1=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + pi2=weighted.mean(MetrPrice,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,wi:=wi1+wi2] + X[,wi1:=wi1/wi] + X[,wi2:=wi2/wi] + XTeh<-X[NewArea_Name=="Sh_Tehran"] + wk1<-XTeh$wi1 # k == Sh_Tehran + wk2<-XTeh$wi2 + pk1<-XTeh$pi1 + pk2<-XTeh$pi2 + + X[,SimpleIndex:= .5 * pi1/pk1 + .5 * pi2/pk2] + X[,AnotherIndex:= wi1 * pi1/pk1 + wi2 * pi2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wi1)/2 * log(pi1/pk1) + (wk2+wi2)/2 * log(pi2/pk2) ) ] + + SMD<-merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/TornqvistIndex] + + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + + + + Deciles2<-SMD[,.(HHID,Decile)] + names(Deciles2)<-c("HHID","Decile2") + + save(Deciles2,file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles2.rda")) + +} + +Comparison<-merge(Deciles1,Deciles2) +Comparison[,Diff:=as.numeric(Decile2)-as.numeric(Decile1)] +Comparison<-merge(Comparison,MD[,.(HHID,Weight,Size,tenure)]) +Comparison[,Weight2:=Weight*83075/86772] + +###Tests +Comparison[,sum(Weight*Size)] +Comparison[,sum(Weight2*Size)] +Comparison[,sum(Weight*Size),by="Decile1"][order(Decile1)] +Comparison[,sum(Weight*Size),by="Decile2"][order(Decile2)] +Comparison[,sum(Weight2*Size),by="Decile1"][order(Decile1)] +Comparison[,sum(Weight2*Size),by="Decile2"][order(Decile2)] + +Table1<-Comparison[Decile1==1,.(N1=sum(Weight2*Size)),by="Decile2"] +Table2<-Comparison[Decile1==2,.(N2=sum(Weight2*Size)),by="Decile2"] +Table3<-Comparison[Decile1==3,.(N3=sum(Weight2*Size)),by="Decile2"] +Table4<-Comparison[Decile1==4,.(N4=sum(Weight2*Size)),by="Decile2"] +Table5<-Comparison[Decile1==5,.(N5=sum(Weight2*Size)),by="Decile2"] +Table6<-Comparison[Decile1==6,.(N6=sum(Weight2*Size)),by="Decile2"] +Table7<-Comparison[Decile1==7,.(N7=sum(Weight2*Size)),by="Decile2"] +Table8<-Comparison[Decile1==8,.(N8=sum(Weight2*Size)),by="Decile2"] +Table9<-Comparison[Decile1==9,.(N9=sum(Weight2*Size)),by="Decile2"] +Table10<-Comparison[Decile1==10,.(N10=sum(Weight2*Size)),by="Decile2"] + +Table<-merge(Table1,Table2,all = TRUE) +Table<-merge(Table,Table3,all = TRUE) +Table<-merge(Table,Table4,all = TRUE) +Table<-merge(Table,Table5,all = TRUE) +Table<-merge(Table,Table6,all = TRUE) +Table<-merge(Table,Table7,all = TRUE) +Table<-merge(Table,Table8,all = TRUE) +Table<-merge(Table,Table9,all = TRUE) +Table<-merge(Table,Table10,all = TRUE) + +Table[is.na(Table)] <- 0 + + +Table1<-Comparison[Decile1==1,.(N1=sum(Weight*Size)),by="Decile2"] +Table2<-Comparison[Decile1==2,.(N2=sum(Weight*Size)),by="Decile2"] +Table3<-Comparison[Decile1==3,.(N3=sum(Weight*Size)),by="Decile2"] +Table4<-Comparison[Decile1==4,.(N4=sum(Weight*Size)),by="Decile2"] +Table5<-Comparison[Decile1==5,.(N5=sum(Weight*Size)),by="Decile2"] +Table6<-Comparison[Decile1==6,.(N6=sum(Weight*Size)),by="Decile2"] +Table7<-Comparison[Decile1==7,.(N7=sum(Weight*Size)),by="Decile2"] +Table8<-Comparison[Decile1==8,.(N8=sum(Weight*Size)),by="Decile2"] +Table9<-Comparison[Decile1==9,.(N9=sum(Weight*Size)),by="Decile2"] +Table10<-Comparison[Decile1==10,.(N10=sum(Weight*Size)),by="Decile2"] + +Table<-merge(Table1,Table2,all = TRUE) +Table<-merge(Table,Table3,all = TRUE) +Table<-merge(Table,Table4,all = TRUE) +Table<-merge(Table,Table5,all = TRUE) +Table<-merge(Table,Table6,all = TRUE) +Table<-merge(Table,Table7,all = TRUE) +Table<-merge(Table,Table8,all = TRUE) +Table<-merge(Table,Table9,all = TRUE) +Table<-merge(Table,Table10,all = TRUE) + +Table[is.na(Table)] <- 0 + + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/Deciles.R b/R/Archive/Deciles.R new file mode 100644 index 00000000..41b9b308 --- /dev/null +++ b/R/Archive/Deciles.R @@ -0,0 +1,219 @@ +#170-Deciling for normal calculations.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Deciles matrix =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G041,G042)]) + + ###Nominal- Country + MD<- MD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + MD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + MD[,Decile:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + MD[,Percentile:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + + A1<-MD[(`71111`+`71112`+`71116`+`71117`>0), + .(A1=weighted.mean(`71111`+`71112`+`71116`+ + `71117`,Weight)),by=Decile] + A2<-MD[(`91128`+`91129`>0), + .(A2=weighted.mean(`91128`+`91129`,Weight)),by=Decile] + A3<-MD[`53112`>0 ,.(A3=weighted.mean(`53112`,Weight)),by=Decile] + A4<-MD[`53116`>0 , .(A4=weighted.mean(`53116`,Weight)),by=Decile] + A5<-MD[`53113`>0 ,.(A5=weighted.mean(`53113`,Weight)),by=Decile] + A6<-MD[`82113`>0, .(A6=weighted.mean(`82113`,Weight)),by=Decile] + A7<-MD[`53125`>0,.(A7=weighted.mean(`53125`,Weight)),by=Decile] + A8<-MD[`91311`>0 ,.(A8= weighted.mean(`91311`,Weight)),by=Decile] + A9<-MD[`72111`>0,.(A9=weighted.mean(`72111`,Weight)),by=Decile] + if (year!=90 & year!=92 & year!=93 & year!=95){ + A10<-MD[`72118`>0 ,.(A10=weighted.mean(`72118`,Weight)),by=Decile] + } + A11<-MD[`72319`>0 ,.(A11=weighted.mean(`72319`,Weight)),by=Decile] + + MD<-merge(MD,A1,by="Decile") + MD<-merge(MD,A2,by="Decile") + MD<-merge(MD,A3,by="Decile") + MD<-merge(MD,A4,by="Decile") + MD<-merge(MD,A5,by="Decile") + MD<-merge(MD,A6,by="Decile") + MD<-merge(MD,A7,by="Decile") + MD<-merge(MD,A8,by="Decile") + MD[,A8:=as.numeric(A8)] + MD<-merge(MD,A9,by="Decile") + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD<-merge(MD,A10,by="Decile") + } + MD<-merge(MD,A11,by="Decile") + + MD[car=="True",Added1:=A1] + MD[tvcr=="True",Added2:=A2] + MD[freezer=="True" | frez_refrig=="True" | refrigerator=="True", + Added3:=A3] + MD[oven=="True",Added4:=A4] + MD[washer=="True",Added5:=A5] + MD[cellphone=="True",Added6:=A6] + MD[cooler_gas=="True",Added7:=A7] + MD[computer=="True",Added8:=A8] + MD[car=="True",Added9:=A9] + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD[car=="True",Added10:=A10] + } + MD[car=="True",Added11:=A11] + + x<-MD[,.(HHID,Decile,car,Added1)] + + if (year!=90 & year!=92 & year!=93 & year!=95){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111", "72118","72319") + } + + if (year==90 | year==92 | year==93 | year==95){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111","72319") + } + + MD[, Total_Depreciated_Durable := Reduce(`+`, .SD), .SDcols=dep] + MD[is.na(MD)] <- 0 + + if (year!=90 & year!=92 & year!=93 & year!=95){ + MD[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added10+Added11] + } + if (year==90 | year==92 | year==93 | year==95){ + MD[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added11] + } + + #Calculate Monthly Total Expenditures + nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" + ,"Add_to_NonDurable" + ,"Added" + #, "Total_Depreciated_Durable" + ) + w <- c(nw, "Medical_Exp", + "Durable_NoDep","Durable_Emergency") + + + MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + MD[,weighted.mean(Total_Exp_Month,Weight)] + MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + ################################################################### + + + + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,#Calorie_Need_NutritionInstitute, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_NutritionInstitute/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_NutritionInstitute/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + + X <- SMD[,.(N=.N,wi1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wi2=weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE), + pi1=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + pi2=weighted.mean(MetrPrice,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,wi:=wi1+wi2] + X[,wi1:=wi1/wi] + X[,wi2:=wi2/wi] + XTeh<-X[NewArea_Name=="Sh_Tehran"] + wk1<-XTeh$wi1 # k == Sh_Tehran + wk2<-XTeh$wi2 + pk1<-XTeh$pi1 + pk2<-XTeh$pi2 + + X[,SimpleIndex:= .5 * pi1/pk1 + .5 * pi2/pk2] + X[,AnotherIndex:= wi1 * pi1/pk1 + wi2 * pi2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wi1)/2 * log(pi1/pk1) + (wk2+wi2)/2 * log(pi2/pk2) ) ] + + SMD<-merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/TornqvistIndex] + + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + + + Deciles1<-SMD[,.(HHID,Decile)] + names(Deciles1)<-c("HHID","Decile1") + + save(Deciles1,file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles1.rda")) + + MD[,Decile:=NULL] + MD<-merge(MD,Deciles1) + + MD[,weighted.mean(Total_Exp_Month_Per,Weight)] + MD[,weighted.mean(Total_Exp_Month_Per,Weight),by="Region"] + z<- MD[,weighted.mean(Total_Exp_Month_Per,Weight),by=c("Region","Decile1")] + + MD[,weighted.mean(Total_Exp_Month,Weight)] + MD[,weighted.mean(Total_Exp_Month,Weight),by="Region"] + z<- MD[,weighted.mean(Total_Exp_Month,Weight),by=c("Region","Decile1")] + + MD[,weighted.mean(G041+G042,Weight)] + MD[,weighted.mean(G041+G042,Weight),by="Region"] + a<-MD[,weighted.mean(G041+G042,Weight),by="Decile1"] + b<-MD[,weighted.mean(G041+G042,Weight),by=c("Decile1","Region")] + + MD[,weighted.mean((G041+G042)/EqSizeOECD,Weight)] + MD[,weighted.mean((G041+G042)/EqSizeOECD,Weight),by="Region"] + a<-MD[,weighted.mean((G041+G042)/EqSizeOECD,Weight),by="Decile1"] + b<-MD[,weighted.mean((G041+G042)/EqSizeOECD,Weight),by=c("Decile1","Region")] +} + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/Engle.xlsx b/R/Archive/Engle.xlsx new file mode 100644 index 00000000..75995f21 Binary files /dev/null and b/R/Archive/Engle.xlsx differ diff --git a/R/Archive/Income Calculations.R b/R/Archive/Income Calculations.R new file mode 100644 index 00000000..2022fcd5 --- /dev/null +++ b/R/Archive/Income Calculations.R @@ -0,0 +1,121 @@ +# 168- Step 8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculations =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +X1<-data.table(Year = numeric(0), Income = numeric(0), Exp = numeric(0), + Income_Per = numeric(0), Exp_Per = numeric(0), Income_Per_kari= numeric(0), + Decile= numeric(0)) + +X2<-data.table(Year = numeric(0), Income = numeric(0), Exp = numeric(0), + Income_Per = numeric(0), Income_Per_kari= numeric(0), + Exp_Per = numeric(0),Region= NA_character_) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodCon.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durables.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Deciles_Nonreal.rda")) + + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"PubWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"PrvWages.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BussIncome.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"AgriWages.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"AidWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"HomemadeWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"InterestWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"IntraWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"OtherIncome.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"RentWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"RetirementWage.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) + # Decile<-as.data.table(Decile) + Data<-MD[,.(HHID,Region,ProvinceCode,Size,EqSizeOECD,Weight,Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable,Add_to_NonDurable,Total_Exp_Month)] + Data<-merge(Data,PubWageData[,.(HHID,PubWageNetIncomeY)],by="HHID",all.x = TRUE) + Data<-merge(Data,PrvWageData[,.(HHID,PrvWageNetIncomeY)],by="HHID",all.x = TRUE) + Data<-merge(Data,BussIncomeData[,.(HHID,BussNetIncomeY)],by="HHID",all.x = TRUE) + Data<-merge(Data,AgriIncomeData[,.(HHID,AgriNetIncomeY)],by="HHID",all.x = TRUE) + Data<-merge(Data,AidWageData[,.(HHID,aid)],by="HHID",all.x = TRUE) + Data<-merge(Data,HomemadeWageData[,.(HHID,homemade)],by="HHID",all.x = TRUE) + Data<-merge(Data,InterestWageData[,.(HHID,interest)],by="HHID",all.x = TRUE) + Data<-merge(Data,IntraWageData[,.(HHID,intra)],by="HHID",all.x = TRUE) + Data<-merge(Data,RentWageData[,.(HHID,rent)],by="HHID",all.x = TRUE) + Data<-merge(Data,RetirementWageData[,.(HHID,retirement)],by="HHID",all.x = TRUE) + Data<-merge(Data,SubsidyWageData[,.(HHID,Subsidy)],by="HHID",all.x = TRUE) + + + Data[is.na(Data)] <- 0 + Data[,Income_HH:=(PubWageNetIncomeY+PrvWageNetIncomeY+BussNetIncomeY+AgriNetIncomeY+ + aid+homemade+interest+intra+rent+retirement+Subsidy)/12] + + Data[,Income_HH_kari:=(PubWageNetIncomeY+PrvWageNetIncomeY+BussNetIncomeY+AgriNetIncomeY)/12] + Data[,Income_Per:=Income_HH/EqSizeOECD] + Data[,Income_Per_kari:=Income_HH_kari/EqSizeOECD] + Data<-Data[order(Total_Exp_Month_Per_nondurable)] + Data<-as.data.table(Data) + # Data <- Data[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + #Data <- Data[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + Data<-merge(Data,NRMD,by="HHID",all.x = TRUE) + a1<- Data[,weighted.mean(Income_HH,Weight)] + a1<- as.data.table(a1) + b1<- Data[,weighted.mean(Income_Per,Weight),by=Region] + c1<- Data[,weighted.mean(Income_Per,Weight),by=Decile][order(Decile)] + + a2<- Data[,weighted.mean(Total_Exp_Month_Per,Weight)] + a2<- as.data.table(a2) + b2<- Data[,weighted.mean(Total_Exp_Month_Per,Weight),by=Region] + c2<- Data[,weighted.mean(Total_Exp_Month_Per,Weight),by=Decile][order(Decile)] + + cat(Data[,weighted.mean(Income_HH,Weight)],"\t") + cat(Data[,weighted.mean(Total_Exp_Month,Weight)]) + + #cat(Data[,weighted.mean(Income_HH/EqSizeOECD,Weight)],"\t") + #cat(Data[,weighted.mean(Total_Exp_Month/EqSizeOECD,Weight)]) + + + A1<-Data[,.(Income=weighted.mean(Income_HH,Weight), + Income_Per=weighted.mean(Income_HH/EqSizeOECD,Weight), + Income_Per_kari=weighted.mean(Income_Per_kari/EqSizeOECD,Weight), + Exp=weighted.mean(Total_Exp_Month,Weight), + Exp_Per=weighted.mean(Total_Exp_Month/EqSizeOECD,Weight)),by=Decile] + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2<-Data[,.(Income=weighted.mean(Income_HH,Weight), + Income_Per=weighted.mean(Income_HH/EqSizeOECD,Weight), + Income_Per_kari=weighted.mean(Income_Per_kari/EqSizeOECD,Weight), + Exp=weighted.mean(Total_Exp_Month,Weight), + Exp_Per=weighted.mean(Total_Exp_Month/EqSizeOECD,Weight)),by=Region] + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + save(Data,file=paste0(Settings$HEISProcessedPath,"Y",year, + "Activared.rda")) + } + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/Inflation9098.rda b/R/Archive/Inflation9098.rda new file mode 100644 index 00000000..f1c2abbc Binary files /dev/null and b/R/Archive/Inflation9098.rda differ diff --git a/R/Archive/Job distribution.R b/R/Archive/Job distribution.R new file mode 100644 index 00000000..baf45777 --- /dev/null +++ b/R/Archive/Job distribution.R @@ -0,0 +1,117 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Job distribution =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) + +year<-98 +#for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + T2<-Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy, + Job_Main_Code_Pub,Job_Original_Code_Pub, + Job_Main_Code_Cooperative,Job_Original_Code_Cooperative, + Job_Main_Code_Prv,Job_Original_Code_Prv, + Job_Main_Code_Buss,Job_Original_Code_Buss, + Job_Main_Code_Agri,Job_Original_Code_Agri)] + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy, + Job_Main_Code_Pub,Job_Original_Code_Pub, + Job_Main_Code_Cooperative,Job_Original_Code_Cooperative, + Job_Main_Code_Prv,Job_Original_Code_Prv, + Job_Main_Code_Buss,Job_Original_Code_Buss, + Job_Main_Code_Agri,Job_Original_Code_Agri, + Retirement,Aid,Homemade,Rent,Interest,Intra)],by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + +MD[,Other_Income:=max(Retirement,Aid,Homemade,Rent,Interest,Intra),by="HHID"] +MD[,Other_Income_Code:=ifelse(Other_Income>0,0.5,0),by="HHID"] + +MD[,Job_Code:=max(Job_Main_Code_Pub,Job_Main_Code_Cooperative,Job_Main_Code_Prv, + Job_Main_Code_Buss,Job_Main_Code_Agri,Other_Income_Code),by="HHID"] +MD[,Job_Code:=ifelse(Job_Code==0,0.5,Job_Code)] + +T3<-MD[,.(Job_Main_Code_Pub,Job_Main_Code_Cooperative,Job_Main_Code_Prv, + Job_Main_Code_Buss,Job_Main_Code_Agri,Other_Income_Code,Job_Code)] + +A<-T3[Job_Code>0] + +MD[,Category:=ifelse(Job_Main_Code_Pub>0,"Pub", + ifelse(Job_Main_Code_Prv>0,"Prv", + ifelse(Job_Main_Code_Buss>0 | Job_Main_Code_Agri>0, + "Buss","Other")))] + +MD[,weighted.mean(Job_Code==9,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Job_Main_Code_Pub>0,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Job_Main_Code_Prv>0,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Job_Main_Code_Buss>0,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Job_Main_Code_Agri>0,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(Other_Income_Code>0,Weight),by=Decile][order(Decile)] + +MD[,HH_Decile:=sum(Weight),by=Decile] + +x1<-MD[Decile==1,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"]#[order("Category")] +x2<-MD[Decile==2,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x3<-MD[Decile==3,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x4<-MD[Decile==4,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x5<-MD[Decile==5,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x6<-MD[Decile==6,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x7<-MD[Decile==7,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x8<-MD[Decile==8,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x9<-MD[Decile==9,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x10<-MD[Decile==10,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] + + +y1<-MD[Decile==1,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"]#[order("Job_Code")] +y2<-MD[Decile==2,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y3<-MD[Decile==3,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y4<-MD[Decile==4,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y5<-MD[Decile==5,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y6<-MD[Decile==6,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y7<-MD[Decile==7,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y8<-MD[Decile==8,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y9<-MD[Decile==9,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +y10<-MD[Decile==10,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Job_Code"] +#} + + +Sale<-MD[Job_Original_Code_Prv==52 | Job_Original_Code_Buss==52] + +Sale[,sum(HIndivNo),by=Decile][order(Decile)] +Sale[,sum(HIndivNo*Weight),by=Decile][order(Decile)] + +x1<-Sale[Decile==1,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"]#[order("Category")] +x2<-Sale[Decile==2,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x3<-Sale[Decile==3,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x4<-Sale[Decile==4,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x5<-Sale[Decile==5,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x6<-Sale[Decile==6,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x7<-Sale[Decile==7,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x8<-Sale[Decile==8,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x9<-Sale[Decile==9,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] +x10<-Sale[Decile==10,.(sum(HIndivNo*Weight)/mean(HH_Decile)),by="Category"] + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/166- Anstitoo bundle - Copy.R b/R/Archive/June 2020 (removed code files)/166- Anstitoo bundle - Copy.R new file mode 100644 index 00000000..8a73ad97 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/166- Anstitoo bundle - Copy.R @@ -0,0 +1,98 @@ +#166-Step 6- FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + + MD<-merge(MD,FoodPrices,all.x=TRUE,by="HHID") + + + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=0.001*30*0.5*(310*weighted.mean(LavashPrice,Weight,na.rm = TRUE)+ + 95*weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE)+ + 20*weighted.mean(MacaroniPrice,Weight,na.rm = TRUE)+ + 26*weighted.mean(AdasPrice,Weight,na.rm = TRUE)+ + 70*weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE)+ + 300*weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE)+ + 280*weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE)+ + 38*weighted.mean(CowMeatPrice,Weight,na.rm = TRUE)+ + 64*weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE)+ + 35*weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE)+ + 250*weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE)+ + 35*weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE)+ + 40*weighted.mean(GhandPrice,Weight,na.rm = TRUE))), + by=.(cluster3,Region)] + MDP[is.na(MDP)] <- 0 + min<-MDP[FPLine>0,min(FPLine)] + MDP[,FPLine:=ifelse(FPLine==0,min,FPLine)] + + MD <- merge(MD,MDP,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + # print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] + # cat(MD[,weighted.mean(FPLine,Weight)]) + # cat(MD[cluster3==13,weighted.mean(Calory_Price,Weight)]) + #cat(MD[cluster3==1,weighted.mean(TOriginalFoodExpenditure_Per,Weight)]) + x<-MD[,weighted.mean(OriginalFoodExpenditure,Weight),by="cluster3"] + + +# cat(MD[,weighted.mean(TOriginalFoodExpenditure_Per,Weight)],"\n") +# cat(MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE)],"\n") +# cat(MD[,weighted.mean(Calory_Price,Weight,na.rm = TRUE)],"\n") + cat(MD[cluster3==1,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/166- FPLine decile - Copy.R b/R/Archive/June 2020 (removed code files)/166- FPLine decile - Copy.R new file mode 100644 index 00000000..ff56e13f --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/166- FPLine decile - Copy.R @@ -0,0 +1,124 @@ +#166-Step 6- FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodPrices.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FoodGrams.rda")) + + MD<-merge(MD,FoodPrices,all.x=TRUE,by="HHID") + MD<-merge(MD,FoodGrams,all.x=TRUE,by="HHID") + + # y<-MD[,weighted.mean(FoodKCaloriesHH_Per,Weight),by=c("Region","Decile")] + + + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MD[,Selected_Group:=ifelse((Region=="Urban" & Decile==3) | + (Region=="Rural" & Decile==2),1,0)] + MDP <- MD[Selected_Group==1, + .(FPLine=0.001* + (weighted.mean(LavashPrice,Weight,na.rm = TRUE)*weighted.mean(BreadGrams,Weight,na.rm = TRUE)+ + weighted.mean(Rice_TaromPrice,Weight,na.rm = TRUE)*weighted.mean(GrainGrams,Weight,na.rm = TRUE)+ + weighted.mean(MacaroniPrice,Weight,na.rm = TRUE)*weighted.mean(MacaroniGram,Weight,na.rm = TRUE)+ + weighted.mean(AdasPrice,Weight,na.rm = TRUE)*weighted.mean(AdasGram+Loobia_ChitiGram+NokhodGram,Weight,na.rm = TRUE)+ + weighted.mean(SibzaminiPrice,Weight,na.rm = TRUE)*weighted.mean(SibzaminiGram,Weight,na.rm = TRUE)+ + weighted.mean(Sabzi_KhordanPrice,Weight,na.rm = TRUE)*weighted.mean(VegetableShrubsGrams,Weight,na.rm = TRUE)+ + weighted.mean(Banana_CoconutPrice,Weight,na.rm = TRUE)*weighted.mean(TreeFruitsGrams,Weight,na.rm = TRUE)+ + weighted.mean(LivestockGrams,Weight,na.rm = TRUE)*weighted.mean(LivestockGrams,Weight,na.rm = TRUE)+ + weighted.mean(PoultryMeat_MPrice,Weight,na.rm = TRUE)*weighted.mean(PoultryMeat_MGram,Weight,na.rm = TRUE)+ + weighted.mean(Egg_MashinPrice,Weight,na.rm = TRUE)*weighted.mean(Egg_MashinGram,Weight,na.rm = TRUE)+ + weighted.mean(Milk_PasteurizedPrice,Weight,na.rm = TRUE)*weighted.mean(MilkproductsGrams+MilkGrams,Weight,na.rm = TRUE)+ + weighted.mean(Oil_NabatiPrice,Weight,na.rm = TRUE)*weighted.mean(Oil_NabatiGram,Weight,na.rm = TRUE)+ + weighted.mean(GhandPrice,Weight,na.rm = TRUE)*weighted.mean(GhandGram,Weight,na.rm = TRUE))), + by=.(cluster3,Region)] + MDP[is.na(MDP)] <- 0 + min<-MDP[FPLine>0,min(FPLine)] + MDP[,FPLine:=ifelse(FPLine==0,min,FPLine)] + + Bundle <- MD[Selected_Group==1, + .( BreadGrams=weighted.mean(BreadGrams/EqSizeCalory,Weight,na.rm = TRUE), + BerenjKhareji= weighted.mean((Rice_Khareji1Gram+Rice_Khareji2Gram)/EqSizeCalory,Weight,na.rm = TRUE), + MacaroniGram= weighted.mean(MacaroniGram/EqSizeCalory,Weight,na.rm = TRUE), + HoboobatGram= weighted.mean((AdasGram+Loobia_ChitiGram+NokhodGram)/EqSizeCalory,Weight,na.rm = TRUE), + SibzaminiGram= weighted.mean(SibzaminiGram/EqSizeCalory,Weight,na.rm = TRUE), + VegetableShrubsGrams= weighted.mean(VegetableShrubsGrams/EqSizeCalory,Weight,na.rm = TRUE), + TreeFruitsGrams= weighted.mean(TreeFruitsGrams/EqSizeCalory,Weight,na.rm = TRUE), + CowMeatGram= weighted.mean(CowMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + SheepGrams= weighted.mean(SheepMeatGram/EqSizeCalory,Weight,na.rm = TRUE), + PoultryMeat_MGram= weighted.mean(PoultryMeat_MGram/EqSizeCalory,Weight,na.rm = TRUE), + Egg_MashinGram= weighted.mean(Egg_MashinGram/EqSizeCalory,Weight,na.rm = TRUE), + MilkproductsGrams= weighted.mean((MilkproductsGrams+MilkGrams)/EqSizeCalory,Weight,na.rm = TRUE), + Oil_NabatiGram= weighted.mean(Oil_NabatiGram/EqSizeCalory,Weight,na.rm = TRUE), + GhandGram= weighted.mean((GhandGram+ShekarGram)/EqSizeCalory,Weight,na.rm = TRUE)) + ,by="Region" + ] + + MD <- merge(MD,MDP,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + # print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] + # cat(MD[,weighted.mean(FPLine,Weight)]) + # cat(MD[cluster3==13,weighted.mean(Calory_Price,Weight)]) + #cat(MD[cluster3==1,weighted.mean(TOriginalFoodExpenditure_Per,Weight)]) + x<-MD[,weighted.mean(FPLine,Weight),by="cluster3"] + + + # cat(MD[,weighted.mean(TOriginalFoodExpenditure_Per,Weight)],"\n") + # cat(MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE)],"\n") + # cat(MD[,weighted.mean(Calory_Price,Weight,na.rm = TRUE)],"\n") + # cat(MD[cluster3==1,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") + cat(MD[,weighted.mean(FPLine,Weight,na.rm = TRUE)],"\n") +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/171-Step1-MergeData.R b/R/Archive/June 2020 (removed code files)/171-Step1-MergeData.R new file mode 100644 index 00000000..ad574ab6 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/171-Step1-MergeData.R @@ -0,0 +1,129 @@ +#171-Step 1.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + #load Demos+FoodPrices+Weights + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) + HHBase<-merge(HHBase,lactating,by="HHID") + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Calorie_Need.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFoodPrice.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights<-HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + + + + #load Expenditures + + for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Furnitures","HotelRestaurants", + "HouseandEnergys","House", "Medicals","Hygienes","Transportations","Others", + "Resturants" + #,"Durablele_Detail" + )){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"NonFreeDurableData.rda")) + + } + + # load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Added_Food.rda")) + + #load Calories + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + FData[,Region:=NULL] + #for (col in c("FoodKCaloriesHH")) FData[is.na(get(col)), (col) := 0] + FData <- FData[FoodKCaloriesHH>0] + + #merge groups + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + FData[,Size:=NULL] + MD<-merge(MD,FData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,HHWeights ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodData,by =c("HHID"),all=TRUE) + # MD<-merge(MD,Added_Food,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseandEnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelRestaurantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HygieneData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BenzinData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,GazData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BarghData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,NaftSefidData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,NonFreeDurableData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ResturantData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,Durablele_Detail,by =c("HHID"),all=TRUE) + #MD<-merge(MD,InvestmentData,by =c("HHID"),all=TRUE) + for (col in c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "Education_Exp", "HouseandEnergy_Exp", + "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", "Transportation_Exp", + "Other_Exp", "Medical_Exp", "NonFreeDurable_Exp", + "Resturant_Exp","ServiceExp" + #,"Add_to_NonDurable","Durable_Dep", + #"Durable_NoDep","Durable_Emergency" + )) + MD[is.na(get(col)), (col) := 0] + # MD<-MD[,Yaraneh:=416000*Size] + + MD<-merge(MD,Calorie_Need) + + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Durablele_Detail.rda")) + #MD<-merge(MD,Durablele_Detail) + + #Calculate Monthly Total Expenditures + nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" + #,"Add_to_NonDurable" + ) + # w <- c(nw, "Medical_Exp","Durable_Dep", + # "Durable_NoDep","Durable_Emergency") + w <- c(nw, "Medical_Exp", "NonFreeDurable_Exp") + #w <- c(nw, "Medical_Exp", "Durable_Pure_Exp") + # pw <- c(nw, "Added_Food_Exp_Month") + #Lw <- c(pw, "Medical_Exp", "Durable_Exp") + + MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + MD[,weighted.mean(Total_Exp_Month,Weight)] + MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN1.rda")) +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/172-Step2-CaloryEqSize.R b/R/Archive/June 2020 (removed code files)/172-Step2-CaloryEqSize.R new file mode 100644 index 00000000..5bde2dc6 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/172-Step2-CaloryEqSize.R @@ -0,0 +1,191 @@ +#172- Step 2.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculationg Equal size calorie =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +Final <- data.table(Year=NA_integer_,Exp=NA_integer_,ProvinceCode=NA_real_)[0] +Educ <- data.table(Year=NA_integer_,Educ=NA_integer_,ProvinceCode=NA_real_)[0] +Marrital <- data.table(Year=NA_integer_,Marrital=NA_integer_,ProvinceCode=NA_real_)[0] +Sex <- data.table(Year=NA_integer_,Sex=NA_integer_,ProvinceCode=NA_real_)[0] +HeadEmploy <- data.table(Year=NA_integer_,HeadEmploy=NA_integer_,ProvinceCode=NA_real_)[0] +WomanEmploy <- data.table(Year=NA_integer_,WomanEmploy=NA_integer_,ProvinceCode=NA_real_)[0] +NumberEmploy <- data.table(Year=NA_integer_,NumberEmploy=NA_integer_,ProvinceCode=NA_real_)[0] + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + cat("\n") + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN1.rda")) + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + + #MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all.x = TRUE) + MD<-MD[Size!=0 & OriginalFoodExpenditure!=0 & !is.na(FoodKCaloriesHH)] + #MD[,Home_Per_Metr:=MetrPrice/EqSizeOECD] + + #Calculate Per Values + MD[,EqSizeCalory3 :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + + MD[,EqSizeCalory := + NAge1B *(Settings$ KCaloryNeed_B1 /Calorie_Need_WorldBank)+ + NAge2B *(Settings$ KCaloryNeed_B2 /Calorie_Need_WorldBank)+ + NAge3B *(Settings$ KCaloryNeed_B3 /Calorie_Need_WorldBank)+ + NAge4B *(Settings$ KCaloryNeed_B4 /Calorie_Need_WorldBank)+ + NAge5B *(Settings$ KCaloryNeed_B5 /Calorie_Need_WorldBank)+ + NAge6B *(Settings$ KCaloryNeed_B6 /Calorie_Need_WorldBank)+ + NAge7B *(Settings$ KCaloryNeed_B7 /Calorie_Need_WorldBank)+ + NAge8B *(Settings$ KCaloryNeed_B8 /Calorie_Need_WorldBank)+ + NAge9B *(Settings$ KCaloryNeed_B9 /Calorie_Need_WorldBank)+ + NAge10B *(Settings$ KCaloryNeed_B10 /Calorie_Need_WorldBank)+ + NAge1G *(Settings$ KCaloryNeed_G1 /Calorie_Need_WorldBank)+ + NAge2G *(Settings$ KCaloryNeed_G2 /Calorie_Need_WorldBank)+ + NAge3G *(Settings$ KCaloryNeed_G3 /Calorie_Need_WorldBank)+ + NAge4G *(Settings$ KCaloryNeed_G4 /Calorie_Need_WorldBank)+ + NAge5G *(Settings$ KCaloryNeed_G5 /Calorie_Need_WorldBank)+ + NAge6G *(Settings$ KCaloryNeed_G6 /Calorie_Need_WorldBank)+ + NAge7G *(Settings$ KCaloryNeed_G7 /Calorie_Need_WorldBank)+ + NAge8G *(Settings$ KCaloryNeed_G8 /Calorie_Need_WorldBank)+ + NAge9G *(Settings$ KCaloryNeed_G9 /Calorie_Need_WorldBank)+ + NAge10G *(Settings$ KCaloryNeed_G10 /Calorie_Need_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_WorldBank)] + + MD[,EqSizeCalory2 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Calorie_Need_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Calorie_Need_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Calorie_Need_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Calorie_Need_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Calorie_Need_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Calorie_Need_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Calorie_Need_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Calorie_Need_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Calorie_Need_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Calorie_Need_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Calorie_Need_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Calorie_Need_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Calorie_Need_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Calorie_Need_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Calorie_Need_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Calorie_Need_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Calorie_Need_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Calorie_Need_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_Anstitoo)] + + MD[,EqSizeCalory4 := + NAge1B*(Settings$KCaloryNeed_B1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2B*(Settings$KCaloryNeed_B2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3B*(Settings$KCaloryNeed_B3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4B*(Settings$KCaloryNeed_B4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5B*(Settings$KCaloryNeed_B5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6B*(Settings$KCaloryNeed_B6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7B*(Settings$KCaloryNeed_B7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8B*(Settings$KCaloryNeed_B8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9B*(Settings$KCaloryNeed_B9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10B*(Settings$KCaloryNeed_B10/Settings$KCaloryNeed_Adult_WorldBank)+ + NAge1G*(Settings$KCaloryNeed_G1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2G*(Settings$KCaloryNeed_G2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3G*(Settings$KCaloryNeed_G3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4G*(Settings$KCaloryNeed_G4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5G*(Settings$KCaloryNeed_G5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6G*(Settings$KCaloryNeed_G6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7G*(Settings$KCaloryNeed_G7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8G*(Settings$KCaloryNeed_G8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9G*(Settings$KCaloryNeed_G9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10G*(Settings$KCaloryNeed_G10/Settings$KCaloryNeed_Adult_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_WorldBank)] + + MD[,EqSizeCalory5 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Settings$KCaloryNeed_Adult_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_Anstitoo)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN2.rda")) + + MD[,weighted.mean(EqSizeCalory,Weight)] + MD[,weighted.mean(EqSizeCalory2,Weight)] + MD[,weighted.mean(EqSizeCalory4,Weight)] + MD[,weighted.mean(EqSizeCalory5,Weight)] + MD[,weighted.mean(EqSizeCalory3,Weight)] + + # X1 <- MD[,.(Exp=weighted.mean(Total_Exp_Month_Per,Weight)),by=ProvinceCode] + # X1[,Year:=year] + #Final <- rbind(Final,X1) + #write.csv(Final,file = "Exp.csv") + + # X2 <- MD[,.(Educ=weighted.mean(HEduYears>12,Weight,na.rm = TRUE)),by=ProvinceCode] + # X2[,Year:=year] + # Educ <- rbind(Educ,X2) + # write.csv(Educ,file = "Educ.csv") + + #X3 <- MD[,.(Marrital=weighted.mean(HMarritalState=="Married",Weight,na.rm = TRUE)),by=ProvinceCode] + #X3[,Year:=year] + #Marrital <- rbind(Marrital,X3) + #write.csv(Marrital,file = "Marrital.csv") + + # X4 <- MD[,.(Sex=weighted.mean(HSex=="Female",Weight,na.rm = TRUE)),by=ProvinceCode] + # X4[,Year:=year] + #Sex <- rbind(Sex,X4) + #write.csv(Sex,file = "Sex.csv") + + # X5 <- MD[,.(HeadEmploy=weighted.mean(HActivityState=="Employed",Weight,na.rm = TRUE)),by=ProvinceCode] + # X5[,Year:=year] + #HeadEmploy <- rbind(HeadEmploy,X5) + # write.csv(HeadEmploy,file = "HeadEmploy.csv") + + # load(file = paste0(Settings$HEISProcessedPath,"Y",year,"WomanEmployed.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"NumberEmployed.rda")) + + # MD<-merge(MD,WomanEmployed,all.x = TRUE) + # MD<-merge(MD,NumberEmployed,all.x = TRUE) + # MD[is.na(MD)] <- 0 + + # X6 <- MD[,.(WomanEmploy=weighted.mean(indivsum,Weight,na.rm = TRUE)),by=ProvinceCode] + # X6[,Year:=year] + #WomanEmploy <- rbind(WomanEmploy,X6) + # write.csv(WomanEmploy,file = "WomanEmploy.csv") + + #X7 <- MD[,.(NumberEmploy=weighted.mean(numbersum,Weight,na.rm = TRUE)),by=ProvinceCode] + #X7[,Year:=year] + # NumberEmploy <- rbind(NumberEmploy,X7) + #write.csv(NumberEmploy,file = "NumberEmploy.csv") + + cat(MD[,weighted.mean(Total_Exp_Month_Per,Weight)]) +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/173-Step3-TFoodPer.R b/R/Archive/June 2020 (removed code files)/173-Step3-TFoodPer.R new file mode 100644 index 00000000..1f5c0740 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/173-Step3-TFoodPer.R @@ -0,0 +1,54 @@ +#173- Step 3.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculationg Per values =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN2.rda")) + + + #MD[,Relative_Calorie1 :=FoodKCaloriesHH/Calorie_Need1] + #MD[,Relative_Calorie2 :=FoodKCaloriesHH/Calorie_Need2] + MD[,OriginalFoodExpenditure_Per :=OriginalFoodExpenditure/EqSizeCalory] + MD[,FoodKCaloriesHH_Per:=FoodKCaloriesHH/EqSizeCalory] + MD[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] + + #Calculate per_Calory from resturants + MD[,Calory_Price:=(OriginalFoodExpenditure_Per/FoodKCaloriesHH_Per)] + MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)] + MD[,ResturantKCalories:=(Settings$OutFoodKCXShare*Resturant_Exp)/Calory_Price_Area] + for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] + MD[,TFoodKCaloriesHH:=FoodKCaloriesHH+ResturantKCalories] + MD[,TOriginalFoodExpenditure:=OriginalFoodExpenditure+Resturant_Exp] + + MD[,TOriginalFoodExpenditure_Per :=TOriginalFoodExpenditure/EqSizeCalory] + MD[,TFoodKCaloriesHH_Per:=TFoodKCaloriesHH/EqSizeCalory] + + ############################################################## + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/174-Step4-RealDeciles.R b/R/Archive/June 2020 (removed code files)/174-Step4-RealDeciles.R new file mode 100644 index 00000000..d11a29a4 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/174-Step4-RealDeciles.R @@ -0,0 +1,265 @@ +#174-FindInitialPoor.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + + Compare1<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + ###Nominal- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable)] #Deciling in Urban- Rural(Nominal) + #SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Nominal- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + SMDIterationPoor[,sum(ThisIterationPoor),by=.(Region,NewArea_Name)][order(Region,NewArea_Name)] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + #cat("\n",sum(SMD[ProvinceCode==2,.N])) + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + SMD[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + SMD[,sum(Size*Weight),by=.(Region,Decile)][order(Region,Decile)] + + SMD[,weighted.mean(Size,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + # NewDecile<-SMD[,.(HHID,Decile)] + # names(NewDecile)<-c("HHID","NewDecile") + # save(NewDecile,file=paste0(Settings$HEISProcessedPath,"Y",year,"NewDecile.rda")) + + # OldDecile<-SMD[,.(HHID,Decile)] + # names(OldDecile)<-c("HHID","OldDecile") + # save(OldDecile,file=paste0(Settings$HEISProcessedPath,"Y",year,"OldDecile.rda")) + + } + + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewDecile.rda")) + #DecileCompare<-merge(as.data.table(OldDecile),NewDecile,by="HHID") + #DecileCompare[,Diff:=as.numeric(NewDecile)-as.numeric(OldDecile)] + #DecileCompare2<- DecileCompare[,.(.N),by=Diff] + + #ggplot(DecileCompare2, aes(fill=factor(Diff), y=N, x=factor(Diff))) + + # geom_bar(position="dodge", stat="identity") + theme_bw() + + # theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + # geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea_Name,Region)] + MD[,sum(Weight*Size), by=.(Decile,Region)][order(Region,Decile)] + MD[,sum(Weight*Size), by=.(Decile_Nominal,Region)][order(Region,Decile_Nominal)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + ######################################## + ######################################## + ######################################## + + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"AidWage.rda")) + MD<-merge(MD,AidWageData,all.x = TRUE) + for (col in c("aid")) MD[is.na(get(col)), (col) := 0] + MD[,PositiveAid:=ifelse(aid>0,1,0)] + MD[,weighted.mean(PositiveAid,Weight*Size),by=.(Region,Decile)][order(Region,Decile)] + MD[,weighted.mean(PositiveAid,Weight*Size),by=.(Decile)][order(Decile)] + + + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) + MD<-merge(MD,SubsidyWageData,all.x = TRUE) + for (col in c("Subsidy")) MD[is.na(get(col)), (col) := 0] + MD[,PositiveSubsidy:=ifelse(Subsidy>0,1,0)] + MD[,weighted.mean(PositiveSubsidy,Weight*Size),by=.(Region,Decile)][order(Region,Decile)] + MD[,weighted.mean(PositiveSubsidy,Weight*Size),by=.(Decile)][order(Decile)] + + + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"UTSubsidyW.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"RTSubsidyW.rda")) + + TSubsidy<-rbind(UTSubsidyW,RTSubsidyW) + TSubsidy<-TSubsidy[,HHID:=Address] + MD<-merge(MD,TSubsidy[,.(HHID,check1)],all.x = TRUE) + MD[,Subsidy3:=ifelse(check1>800000,1,0)] + y<-MD[Subsidy3==1,.(HHID,Decile,Region)] + MD[,weighted.mean(Subsidy3,Weight*Size,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] + MD[,weighted.mean(Subsidy3,Weight*Size,na.rm = TRUE),by=.(Decile)][order(Decile)] + + MD[,TotalAid:=(Subsidy+aid)/12] + MD_Ok<- MD[TotalAid>0] + MD_Ok[,ratio:=TotalAid/Total_Exp_Month] + MD_Ok[,.(.N,weighted.mean(ratio,Weight*Size,na.rm = TRUE)),by=.(Region,Decile)][order(Region,Decile)] + MD_Ok[,.(weighted.mean(ratio,Weight*Size,na.rm = TRUE)),by=.(Decile)][order(Decile)] + + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"BreadExp.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"BreadCon.rda")) + SMD<-merge(SMD,BreadData,by="HHID") + SMD<-merge(SMD,BreadConsumption,by="HHID") + + SMD[is.na(SMD)] <- 0 + + SMD[,weighted.mean(G01114+G01115,Weight),by=.(Region,Decile)][order(Region,Decile)] + SMD[,weighted.mean(G01114+G01115,Weight),by=.(Decile)][order(Decile)] + + SMD[,weighted.mean(BreadGrams,Weight),by=.(Region,Decile)][order(Region,Decile)] + SMD[,weighted.mean(BreadGrams,Weight),by=.(Decile)][order(Decile)] + + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"DrugsExp.rda")) + SMD<-merge(SMD,DrugsExp,all.x = TRUE) + SMD[is.na(SMD)] <- 0 + + SMD[,weighted.mean(DrugsExp,Weight),by=.(Region,Decile)][order(Region,Decile)] + SMD[,weighted.mean(DrugsExp,Weight),by=.(Decile)][order(Decile)] + + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) + TotalFoodExp<-merge(TotalFoodExp,SMD[,.(HHID,Decile)]) + + TotalFoodExp[,weighted.mean(`011211`+`011212`+`011213`+ + `011214`,Weight),by=.(Decile)][order(Decile)] + + TotalFoodExp[,weighted.mean(`011117`+`011118`,Weight),by=.(Decile)][order(Decile)] + + TotalFoodExp[,weighted.mean(`011231`+`011232`,Weight),by=.(Decile)][order(Decile)] + + TotalFoodExp[,weighted.mean(`011411`+`011412`+`011413`+`011414`+ + `011421`+`011422`+`011423`+`011424`+ + `011425`+`011426`+`011427`+`011428`+ + `011429`+`011431`+`011432`+`011433`,Weight),by=.(Decile)][order(Decile)] + + TotalFoodExp[,weighted.mean(`011441`+`011442`+`011443`,Weight),by=.(Decile)][order(Decile)] + + TotalFoodExp[,weighted.mean(`011531`+`011532`+`011533`,Weight),by=.(Decile)][order(Decile)] + + TotalFoodExp[,weighted.mean(`011812`,Weight),by=.(Decile)][order(Decile)] + + } + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/175-Step5-AddClusterInfo.R b/R/Archive/June 2020 (removed code files)/175-Step5-AddClusterInfo.R new file mode 100644 index 00000000..6b6dbde2 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/175-Step5-AddClusterInfo.R @@ -0,0 +1,117 @@ +#183-Clustering(93-96).R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +library(dplyr) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + #####Clustering##### + dt2Urban<-MD[Region=="Urban",.(NewArea,NewArea_Name,Region,HHID)] + dt2Rural<-MD[Region=="Rural",.(NewArea,NewArea_Name,Region,HHID)] + + #####Urban##### + dt2Urban<-dt2Urban[NewArea_Name=="Sh_Tehran",cluster3:=1] + + dt2Urban<-dt2Urban[NewArea_Name=="Sh_Shiraz" | NewArea_Name=="Sh_Esfahan" | + NewArea_Name=="Sh_Bandarabas" | + NewArea_Name=="Sh_Karaj" | + NewArea_Name=="Sh_Rasht", + cluster3:=2] + + dt2Urban<-dt2Urban[NewArea_Name=="Gilan" | NewArea_Name=="Alborz" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Ghazvin" | + NewArea_Name=="Markazi" | NewArea_Name=="Esfahan" | + NewArea_Name=="Ghom" | NewArea_Name=="Sh_Arak" | + NewArea_Name=="Tehran" | NewArea_Name=="Sh_Tabriz" | + NewArea_Name=="Mazandaran" | NewArea_Name=="Sh_Yazd" , + cluster3:=3] + + dt2Urban<-dt2Urban[ NewArea_Name=="Yazd" | + NewArea_Name=="Sh_Kerman" | + NewArea_Name=="Sh_Hamedan" | + NewArea_Name=="Chaharmahal" | + NewArea_Name=="Zanjan" | NewArea_Name=="Hamedan" | + NewArea_Name=="Sh_Mashhad" | NewArea_Name=="Sh_Urmia" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Hormozgan"| + NewArea_Name=="Booshehr" | + NewArea_Name=="Semnan" | NewArea_Name=="Fars", + cluster3:=4] + + dt2Urban<-dt2Urban[ NewArea_Name=="Sh_Kermanshah" | NewArea_Name== "Az_Sharghi" | + NewArea_Name=="Kerman" | + NewArea_Name=="Ardebil" | + NewArea_Name=="Ilam" , + cluster3:=5] + + dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" | NewArea_Name=="Kordestan" | + NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Kermanshah" | NewArea_Name=="Lorestan" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Golestan", + cluster3:=6] + + dt2Urban<-dt2Urban[NewArea_Name=="Sistan" | NewArea_Name=="Sh_Zahedan", + cluster3:=7] + + save(dt2Urban,file ="dt2Urban.rda") + #####Rural##### + dt2Rural<-dt2Rural[ NewArea_Name=="Tehran" | NewArea_Name=="Alborz", + cluster3:=8] + + dt2Rural<-dt2Rural[NewArea_Name=="Esfahan" | NewArea_Name=="Mazandaran" , + cluster3:=9] + + dt2Rural<-dt2Rural[ NewArea_Name=="Ghazvin" | NewArea_Name=="Yazd" | + NewArea_Name=="Gilan" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Booshehr", + cluster3:=10] + + dt2Rural<-dt2Rural[ NewArea_Name=="Zanjan" | + NewArea_Name=="Chaharmahal"| NewArea_Name=="Hormozgan" | NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Ghom" | + NewArea_Name=="Fars" | + NewArea_Name=="Markazi" | NewArea_Name=="Semnan", + cluster3:=11] + + dt2Rural<-dt2Rural[ NewArea_Name=="Hamedan" | + NewArea_Name=="Az_Gharbi" | NewArea_Name=="Kermanshah" | + NewArea_Name=="Kerman" | NewArea_Name=="Golestan" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Lorestan" | + NewArea_Name=="Kordestan"| + NewArea_Name=="Khoozestan" | + NewArea_Name=="Ardebil" | NewArea_Name=="Ilam", + cluster3:=12] + + dt2Rural<-dt2Rural[ NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Sistan" , + cluster3:=13] + + save(dt2Rural,file ="dt2Rural.rda") + #####Merge##### + dt2total<-rbind(dt2Urban,dt2Rural) + + + dt2total[,HHID:=NULL] + dt2total<-distinct(dt2total) + + MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/176-Step6-FoodBasicNeeds.R b/R/Archive/June 2020 (removed code files)/176-Step6-FoodBasicNeeds.R new file mode 100644 index 00000000..727686e9 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/176-Step6-FoodBasicNeeds.R @@ -0,0 +1,76 @@ +#176-Step 6- FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + + #load(file = "CPI.rda") + #CPI<-as.data.table(CPI) + #CPI<-CPI[,Decile:=as.character(Decile)] + #MD<-merge(MD,CPI,by="Decile") + + #Determine Food (Equal 2100 KCal) Bundle + #MDPoors<-MD[InitialPoor==1] + MD[,NewPoor:=InitialPoor] + #MD[,NewPoor:=ifelse(Decile %in% c(1,2,3,4),1,0)] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ +# cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(cluster3,Region)] + MD <- merge(MD,MDP,by=c("Region","cluster3")) +# print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/177- pline with durable.R b/R/Archive/June 2020 (removed code files)/177- pline with durable.R new file mode 100644 index 00000000..a2a553d2 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/177- pline with durable.R @@ -0,0 +1,245 @@ +# 177- Step 7,8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + + + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Value.rda")) + + MD<-merge(MD,Value,by="HHID") + + A1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Auto2_rani+Auto1_Khareji+Auto2_Khareji+Auto1_Irani,Weight),by=cluster3] + A2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Auto2_rani>0 | Auto1_Khareji>0 | + Auto2_Khareji>0 | Auto1_Irani>0), + weighted.mean(Auto2_rani+Auto1_Khareji+Auto2_Khareji+Auto1_Irani,Weight)] + + B1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(TV_Rangi_Irani+TV_Rangi_Khareji,Weight),by=cluster3] + B2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (TV_Rangi_Irani>0 | TV_Rangi_Khareji>0),weighted.mean(TV_Rangi_Irani+TV_Rangi_Khareji,Weight)] + + C1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(freezer2,Weight),by=cluster3] + C2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (freezer2>0),weighted.mean(freezer2,Weight)] + + D1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(OjaghGaz,Weight),by=cluster3] + D2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (OjaghGaz>0),weighted.mean(OjaghGaz,Weight)] + + E1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Mashin_Lebasshooyi,Weight),by=cluster3] + E2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Mashin_Lebasshooyi>0),weighted.mean(Mashin_Lebasshooyi,Weight)] + + F1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Mobile,Weight),by=cluster3] + F2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Mobile>0),weighted.mean(Mobile,Weight)] + + G1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Cooler_Gaz,Weight),by=cluster3] + G2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Cooler_Gaz>0),weighted.mean(Cooler_Gaz,Weight)] + + H1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(PC,Weight),by=cluster3] + H2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (PC>0),weighted.mean(PC,Weight)] + + I1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Lastik_Mashin,Weight),by=cluster3] + I2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Lastik_Mashin>0),weighted.mean(Lastik_Mashin,Weight)] + + J1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Motor_Machin,Weight),by=cluster3] + J2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Motor_Machin>0),weighted.mean(Motor_Machin,Weight)] + + K1<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Tamirat_Asasi,Weight),by=cluster3] + K2<- MD[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Tamirat_Asasi>0),weighted.mean(Tamirat_Asasi,Weight)] + + MD[,Added_Dep:=0.1*(Auto2_rani+Auto1_Khareji+Auto2_Khareji+Auto1_Irani)+ + 0.033*(TV_Rangi_Irani>0 | TV_Rangi_Khareji>0)+ + 0.033*(freezer2)+ + 0.033*(OjaghGaz)+ + 0.033*(Mashin_Lebasshooyi)+ + 0.11*(Mobile)+ + 0.05*(Cooler_Gaz)+ + 0.06*(PC)+ + 0.5*(Lastik_Mashin)+ + 0.033*(Motor_Machin)+ + 0.05*(Tamirat_Asasi) ] + + + names(A1)<-c("cluster3","A1") + names(B1)<-c("cluster3","B1") + names(C1)<-c("cluster3","C1") + names(D1)<-c("cluster3","D1") + names(E1)<-c("cluster3","E1") + names(F1)<-c("cluster3","F1") + names(G1)<-c("cluster3","G1") + names(H1)<-c("cluster3","H1") + names(I1)<-c("cluster3","I1") + names(J1)<-c("cluster3","J1") + names(K1)<-c("cluster3","K1") + + + V<-merge(A1,B1,by="cluster3") + V<-merge(V,C1,by="cluster3") + V<-merge(V,D1,by="cluster3") + V<-merge(V,E1,by="cluster3") + V<-merge(V,F1,by="cluster3") + V<-merge(V,G1,by="cluster3") + V<-merge(V,H1,by="cluster3") + V<-merge(V,I1,by="cluster3") + V<-merge(V,J1,by="cluster3") + V<-merge(V,K1,by="cluster3") + V[,Added:=A1+B1+C1+D1+E1+F1+G1+H1+I1+J1+H1+K1] + MD<-merge(MD,V,by="cluster3") + + EngleD<- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month_nondurable,Weight), + FPLine=mean(FPLine), + Added=mean(Added)),by=.(Region,cluster3)] + + + + EngleD[,PovertyLine:=FPLine/Engel] + EngleD[,PovertyLine2:=PovertyLine+Added] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,PovertyLine2,Engel)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per_nondurable+Added_Dep < PovertyLine2,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + MD[,weighted.mean(Added,Weight)] + MD[,weighted.mean(Added,Weight),by=Region] + + MD[,weighted.mean(PovertyLine2,Weight)] + MD[,weighted.mean(PovertyLine2,Weight),by=Region] + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine2,Weight*Size)],"\t") + cat(MD[, weighted.mean(FPLine,Weight*Size)],"\t") + cat(MD[, sum(Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + MD[, weighted.mean(FinalPoor,Weight*Size)] + MD[, weighted.mean(FinalPoor,Weight*Size),by=Region] + MD[, weighted.mean(FinalPoor,Weight*Size),by=cluster3] + + MD[,weighted.mean(FinalPoor,Weight),by=ProvinceCode][order(ProvinceCode)] +} + +MD[,sum(Weight),by=Decile][order(Decile)] +MD[,sum(Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,sum(Weight)] +MD[,sum(Weight*Size)] + +# compare Engle & Engle_prime in 178 +FinalClusterEngel <- FinalClusterResults[,.(Year,cluster3,FPLine,PovertyHCR)] +save(FinalClusterEngel,file=paste0(Settings$HEISProcessedPath,"FINALPOORS_normal.rda")) + +#ggplot(HighEngles)+ +# geom_line(mapping = aes(x=Year,y=N50/N,col=factor(cluster3))) + +#ggplot(FinalClusterResults)+ +# geom_line(mapping = aes(x=Year,y=PovertyHCR,col=factor(cluster3))) + +#write.csv(FinalClusterResults,file = FinalClusterResults.csv) + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/177-Step 7 ,8,9-PovertyLines.R b/R/Archive/June 2020 (removed code files)/177-Step 7 ,8,9-PovertyLines.R new file mode 100644 index 00000000..cd24df90 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/177-Step 7 ,8,9-PovertyLines.R @@ -0,0 +1,149 @@ +# 177- Step 7,8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +library(writexl) +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + + + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) +#MD<-MD[CountyCode==2301] + + EngleD<- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + + + EngleD[,PovertyLine:=FPLine/Engel] + + + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engel)],by=c("Region","cluster3")) +MD<-MD[,FPLine1:=weighted.mean(FPLine,Weight)] +MD<-MD[,PovertyLine:=FPLine1/Engel] + + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + cat(MD[, weighted.mean(FPLine,Weight*Size)],"\t") + cat(MD[, sum(Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + MD[, weighted.mean(FinalPoor,Weight*Size)] + MD[, weighted.mean(FinalPoor,Weight*Size),by=Region] + MD[, weighted.mean(FinalPoor,Weight*Size),by=cluster3] + + MD[,weighted.mean(FinalPoor,Weight),by=ProvinceCode][order(ProvinceCode)] +} + +MD[,sum(Weight),by=Decile][order(Decile)] +MD[,sum(Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,sum(Weight)] +MD[,sum(Weight*Size)] + +# compare Engle & Engle_prime in 178 +FinalClusterEngel <- FinalClusterResults[,.(Year,cluster3,FPLine,PovertyHCR)] +save(FinalClusterEngel,file=paste0(Settings$HEISProcessedPath,"FINALPOORS_normal.rda")) + +#ggplot(HighEngles)+ +# geom_line(mapping = aes(x=Year,y=N50/N,col=factor(cluster3))) + +#ggplot(FinalClusterResults)+ +# geom_line(mapping = aes(x=Year,y=PovertyHCR,col=factor(cluster3))) + +#write.csv(FinalClusterResults,file = FinalClusterResults.csv) +FinalClusterResults<-FinalClusterResults[,cluster3:=as.factor(cluster3)] +FinalClusterResults<-FinalClusterResults[,Year:=as.factor(Year)] +ggplot(data=FinalClusterResults,aes(x=Year, y=PovertyHCR, group=cluster3, colour=cluster3))+geom_line() +write_xlsx(FinalClusterResults,path="FinalClusterResults.xlsx",col_names=T) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/178- Other related calculation.R b/R/Archive/June 2020 (removed code files)/178- Other related calculation.R new file mode 100644 index 00000000..f7250bd1 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/178- Other related calculation.R @@ -0,0 +1,270 @@ +# 178- Other related calculation.R +# +# Copyright © 2020:Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Other related calculation =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +library(sm) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +FinalClusterDiff <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,Food_Share=NA_real_,Durable_Share=NA_real_, + SampleSize=NA_integer_,Clusterdiff=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_,FoodKCaloriesHH_Per=NA_real_, + Total_Exp_Month_Per_nondurable=NA_real_, + Total_Exp_Month_Per=NA_real_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +ProvinceResults <- data.table(Year=NA_integer_,ProvinceCode=NA_integer_, + Total_Exp_Per=NA_real_,HSex=NA_character_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + #MD<-MD[Region=="Rural"] + #MD<-MD[cluster3==7] + MD<-MD[,Clusterdiff:=ifelse(cluster3==7,1,0)] + + EngleD <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + + EngleD[,PovertyLine:=FPLine/Engel] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engel)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + ################Cluster Diff################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Food_Share=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + Durable_Share=weighted.mean(Durable_Exp/Total_Exp_Month,Weight), + Engle=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight), + cluster3=weighted.mean(cluster3,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Clusterdiff] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Clusterdiff] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Clusterdiff")) + FinalClusterDiff <- rbind(FinalClusterDiff,X) + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + + ################Province################## + X1 <- MD[,.(Total_Exp_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm = TRUE)),by=.(ProvinceCode,HSex)] + + X1[,Year:=year] + ProvinceResults <- rbind(ProvinceResults,X1) + + write.csv(ProvinceResults,file = "ProvinceResults.csv") + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)]) + #cat(MD[TOriginalFoodExpenditure_Per>0.8*FPLine & + # TOriginalFoodExpenditure_Per<1.2*FPLine & + # Region=="Rural" & NewArea==11, + # weighted.mean(Engel,Weight)]) + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + Poors<-MD[FinalPoor==1] + + + MDR<-MD[Region=="Rural"] + #MDRP<-MDR[FinalPoor==1] + MDRN<-MDR[TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine] + a<-ggplot(MDRN,aes(x=HHEngle, fill=factor(cluster3))) + geom_density(alpha=0.25)+ + ggtitle(year) + +#plot(a) +} +save(FinalClusterResults,file=paste0(Settings$HEISProcessedPath,"FinalClusterResults.rda")) +save(FinalCountryResults,file=paste0(Settings$HEISProcessedPath,"FinalCountryResults.rda")) + +ggplot(FinalClusterResults)+ + geom_line(mapping = aes(x=Year,y=log(FoodKCaloriesHH_Per),col=factor(cluster3))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=MetrPrice,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=MetrPrice,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=FPLine,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=Engle,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=PovertyLine,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=House_Share,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=Food_Share,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=Durable_Share,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=Total_Exp_Month_Per_nondurable,col=factor(Clusterdiff))) + +ggplot(FinalClusterDiff)+ + geom_line(mapping = aes(x=Year,y=Total_Exp_Month_Per,col=factor(Clusterdiff))) + +MD7<-MD[cluster3==7] +plot(MD7$TOriginalFoodExpenditure_Per~MD7$HHEngle) +abline(h = MD7$FPLine*1.2, col="blue") +abline(h = MD7$FPLine*0.8, col="blue") +plot(MD7$Total_Exp_Month_Per~MD7$HHEngle) +abline(h = MD7$PovertyLine, col="blue") + +plot(log(MD7$TOriginalFoodExpenditure_Per)~log(MD7$Total_Exp_Month_Per)) +smoothScatter(log(MD$TOriginalFoodExpenditure_Per),log(MD$Total_Exp_Month_Per)) +smoothScatter(log(MD$Total_Exp_Month_Per),(MD$TOriginalFoodExpenditure_Per/MD$Total_Exp_Month_Per)) + +Area7<-MD[,.(HHID,Size,Decile,Region,ProvinceCode,FinalPoor,Area,Weight)] +Area7[FinalPoor==1,weighted.mean(Area,Weight,na.rm = TRUE)] + + + +MD77<-MD7[,.(.N,Total_Exp_Month_Per_nondurable=mean(Total_Exp_Month_Per_nondurable), + HHEngle=mean(HHEngle)),by="Percentile"] +plot(MD77$HHEngle~MD77$Percentile) + + +###Engle distribution### +MDU<-MD[Region=="Urban"] +sm.density.compare(MDU$HHEngle, MDU$cluster3==7) + +MDUP<-MDU[FinalPoor==1] +sm.density.compare(MDUP$HHEngle, MDUP$cluster3==7) + +MDUN<-MDU[TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine] +sm.density.compare(MDUN$HHEngle, MDUN$cluster3==7) +sm.density.compare(MDUN$HHEngle, MDUN$cluster3) + +MDR<-MD[Region=="Rural"] +sm.density.compare(MDR$HHEngle, MDR$cluster3==13) + +MDRP<-MDR[FinalPoor==1] +sm.density.compare(MDRP$HHEngle, MDRP$cluster3==13) + +MDRN<-MDR[TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine] +sm.density.compare(MDRN$HHEngle, MDRN$cluster3==13) + +D1 <- MD[Decile==1 & Region=="Urban",.(N1=sum(Weight)),by=NewArea_Name] +D2 <- MD[Decile==2 & Region=="Urban",.(N2=sum(Weight)),by=NewArea_Name] +D3 <- MD[Decile==3 & Region=="Urban",.(N3=sum(Weight)),by=NewArea_Name] +D4 <- MD[Decile==4 & Region=="Urban",.(N4=sum(Weight)),by=NewArea_Name] +D5 <- MD[Decile==5 & Region=="Urban",.(N5=sum(Weight)),by=NewArea_Name] +D6 <- MD[Decile==6 & Region=="Urban",.(N6=sum(Weight)),by=NewArea_Name] +D7 <- MD[Decile==7 & Region=="Urban",.(N7=sum(Weight)),by=NewArea_Name] +D8 <- MD[Decile==8 & Region=="Urban",.(N8=sum(Weight)),by=NewArea_Name] +D9 <- MD[Decile==9 & Region=="Urban",.(N9=sum(Weight)),by=NewArea_Name] +D10 <- MD[Decile==10 & Region=="Urban",.(N10=sum(Weight)),by=NewArea_Name] +Dx <- MD[Region=="Urban",.(Nx=sum(Weight)),by=NewArea_Name] +Dxx <- merge(Dx,D1) +Dxx <- merge(Dxx,D2) +Dxx <- merge(Dxx,D3) +Dxx <- merge(Dxx,D4) +Dxx <- merge(Dxx,D5) +Dxx <- merge(Dxx,D6) +Dxx <- merge(Dxx,D7) +Dxx <- merge(Dxx,D8) +Dxx <- merge(Dxx,D9) +Dxx <- merge(Dxx,D10) +Dxx[,p1:=N1/Nx*100] +Dxx[,p2:=N2/Nx*100] +Dxx[,p3:=N3/Nx*100] +Dxx[,p4:=N4/Nx*100] +Dxx[,p5:=N5/Nx*100] +Dxx[,p6:=N6/Nx*100] +Dxx[,p7:=N7/Nx*100] +Dxx[,p8:=N8/Nx*100] +Dxx[,p9:=N9/Nx*100] +Dxx[,p10:=N10/Nx*100] + +#write.csv(ProvinceResults,file = ProvinceResults.csv) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/178- Poverty line for Engel_prime.R b/R/Archive/June 2020 (removed code files)/178- Poverty line for Engel_prime.R new file mode 100644 index 00000000..3576fea5 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/178- Poverty line for Engel_prime.R @@ -0,0 +1,205 @@ +# 177- Step 7,8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +FinalClusterDiff <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,Food_Share=NA_real_,Durable_Share=NA_real_, + SampleSize=NA_integer_,Clusterdiff=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_,FoodKCaloriesHH_Per=NA_real_, + Total_Exp_Month_Per_nondurable=NA_real_, + Total_Exp_Month_Per=NA_real_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +for(year in (84:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + + # load data -------------------------------------- + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + #MD<-MD[Region=="Rural"] + #MD<-MD[cluster3==7] + MD<-MD[,Clusterdiff:=ifelse(cluster3==7,1,0)] + MD<-MD[,EngleH:=(TOriginalFoodExpenditure/Total_Exp_Month)] + + + + HighEngle1 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) > 0.4, + .(.N),by=.(Region,cluster3)] + + HighEngle2 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) > 0.45, + .(.N),by=.(Region,cluster3)] + + HighEngle3 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) > 0.5, + .(.N),by=.(Region,cluster3)] + + HighEngle<-rbind(HighEngle1,HighEngle2,HighEngle3) + + EngleD1 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) < 0.5 & + (cluster3!=6 & cluster3!=7 & cluster3!=11 & + cluster3!=12 & cluster3!=13), + .(.N,Engel=weighted.mean(EngleH,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + EngleD2 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) < 0.45 & + (cluster3==6 | cluster3==7 | cluster3==11 | + cluster3==12 | cluster3==13), + .(.N,Engel=weighted.mean(EngleH,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + + EngleD<-rbind(EngleD1,EngleD2) + EngleD<-EngleD[,Year:=year] + EngleDD <- EngleD + EngleDD <- subset(EngleDD, select = c(Year,cluster3,Engel,Region)) + save(EngleDD,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleD.rda")) + lyear=year-1 + load(file=paste0(Settings$HEISProcessedPath,"Y",lyear,"EngleD.rda")) + + EngleDD[,Engel:=ifelse(Year==84,Engel*0.9937, + ifelse(Year==85,Engel*0.9938, + ifelse(Year==86,Engel*0.9936, + ifelse(Year==87,Engel*1.0012, + ifelse(Year==88,Engel*0.9963, + ifelse(Year==89,Engel*0.9898, + ifelse(Year==90,Engel*0.9664, + ifelse(Year==91,Engel*1.0269, + ifelse(Year==92,Engel*1.0250, + ifelse(Year==93,Engel*1.0080, + ifelse(Year==94,Engel*1.0006, + ifelse(Year==95,Engel*0.9996, + ifelse(Year==96,Engel*1.0000, + ifelse(Year==97,Engel*1.0379,0))))))))))))))] + + EngleD <- subset(EngleD,select = c(1,2,3,5,6)) + + EngleDD <- subset(EngleDD, select = c(cluster3,Engel,Region)) + + EngleD<-merge(EngleD,EngleDD) + + EngleD[,PovertyLine:=FPLine/Engel] + + colnames(MD)[colnames(MD) == 'FPLine'] <- 'FPLine1' + + MNNN=subset(MD,select=c(FPLine1)) + MD <- merge(MD,EngleD[,.(cluster3,Region,FPLine,Engel,PovertyLine)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=EngleH,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS_Engle.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + ################Country################## + + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(EngleH,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)]) + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS_Engle.rda")) + + Poors<-MD[FinalPoor==1] + + a<-MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + cluster3==7, + .(x=EngleH)] + +} +FinalClusterEngelPrime <- FinalClusterResults[,.(Year,cluster3,FPLine,PovertyHCR)] +colnames(FinalClusterEngelPrime)[colnames(FinalClusterEngelPrime) == 'FPLine'] <- 'FPLine_p' +colnames(FinalClusterEngelPrime)[colnames(FinalClusterEngelPrime) == 'PovertyHCR'] <- 'PovertyHCR_p' + +load(file=paste0(Settings$HEISProcessedPath,"FINALPOORS_normal.rda")) +FinalClusterEngelPrime <- merge(FinalClusterEngelPrime,FinalClusterEngel[,.(Year,cluster3,FPLine,PovertyHCR)]) +save(FinalClusterEngelPrime,file=paste0(Settings$HEISProcessedPath,"FINALPOORS_prime.rda")) + +library(xlsx) +write.xlsx(FinalClusterEngelPrime, "E:/FinalClusterEngelPrime.xlsx") +ggplot(FinalClusterResults)+ + geom_line(mapping = aes(x=Year,y=MetrPrice,col=factor(cluster3),line=factor(cluster3))) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/178- Poverty line for Engel_prime_moving_average.R b/R/Archive/June 2020 (removed code files)/178- Poverty line for Engel_prime_moving_average.R new file mode 100644 index 00000000..caa8b500 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/178- Poverty line for Engel_prime_moving_average.R @@ -0,0 +1,302 @@ +# 177- Step 7,8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +FinalClusterDiff <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,Food_Share=NA_real_,Durable_Share=NA_real_, + SampleSize=NA_integer_,Clusterdiff=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_,FoodKCaloriesHH_Per=NA_real_, + Total_Exp_Month_Per_nondurable=NA_real_, + Total_Exp_Month_Per=NA_real_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + #MD<-MD[Region=="Rural"] + #MD<-MD[cluster3==7] + MD<-MD[,Clusterdiff:=ifelse(cluster3==7,1,0)] + MD<-MD[,EngleH:=(TOriginalFoodExpenditure/Total_Exp_Month)] + + + + HighEngle1 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) > 0.4, + .(.N),by=.(Region,cluster3)] + + HighEngle2 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) > 0.45, + .(.N),by=.(Region,cluster3)] + + HighEngle3 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) > 0.5, + .(.N),by=.(Region,cluster3)] + + HighEngle<-rbind(HighEngle1,HighEngle2,HighEngle3) + + EngleD1 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) < 0.5 & + (cluster3!=6 & cluster3!=7 & cluster3!=11 & + cluster3!=12 & cluster3!=13), + .(.N,Engel=weighted.mean(EngleH,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + EngleD2 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (EngleH) < 0.45 & + (cluster3==6 | cluster3==7 | cluster3==11 | + cluster3==12 | cluster3==13), + .(.N,Engel=weighted.mean(EngleH,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + + EngleD<-rbind(EngleD1,EngleD2) + EngleD<-EngleD[,Year:=year] + EngleDD <- EngleD + EngleDD <- subset(EngleDD, select = c(Year,cluster3,Engel,Region)) + save(EngleDD,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleDD.rda")) + save(EngleD,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleD.rda")) +} +for(year in (84:Settings$endyear)){ + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + MD<-MD[,Clusterdiff:=ifelse(cluster3==7,1,0)] + MD<-MD[,EngleH:=(TOriginalFoodExpenditure/Total_Exp_Month)] + + + cat(paste0("\nYear:",year,"\t")) + #nyear=year+1 + #if(Settings$endyear==year){nyear=year} + #load(file=paste0(Settings$HEISProcessedPath,"Y",nyear,"EngleDD.rda")) + #EngleND <- EngleDD + #colnames(EngleND)[colnames(EngleND) == 'Engel'] <- 'Engeln' + #colnames(EngleND)[colnames(EngleND) == 'Year'] <- 'Yearn' + #nnyear=year+2 + #if(year >Settings$endyear-2){nnyear=year} + #load(file=paste0(Settings$HEISProcessedPath,"Y",nnyear,"EngleDD.rda")) + #EngleNND <- EngleDD + #colnames(EngleNND)[colnames(EngleNND) == 'Engel'] <- 'Engelnn' + #colnames(EngleNND)[colnames(EngleNND) == 'Year'] <- 'Yearnn' + + pyear=year-2 + load(file=paste0(Settings$HEISProcessedPath,"Y",pyear,"EngleDD.rda")) + EnglePPD <- EngleDD + colnames(EnglePPD)[colnames(EnglePPD) == 'Engel'] <- 'Engelpp' + colnames(EnglePPD)[colnames(EnglePPD) == 'Year'] <- 'Yearpp' + pyear=year-1 + load(file=paste0(Settings$HEISProcessedPath,"Y",pyear,"EngleDD.rda")) + EnglePD <- EngleDD + colnames(EnglePD)[colnames(EnglePD) == 'Engel'] <- 'Engelp' + colnames(EnglePD)[colnames(EnglePD) == 'Year'] <- 'Yearp' + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleDD.rda")) + + + EngleMD<-merge(EnglePPD,EnglePD) + EngleMD<-merge(EngleMD,EngleDD) +# EngleMD<-merge(,EngleND) +# EngleMD<-merge(EngleMD,EngleNND) + + #EngleMD <- EngleMD[,Engelm:=(Engel+Engelp+Engelpp+Engelnn+Engeln)/5] + #if(year==97){ EngleMD <- EngleMD[,Engelm:=(Engel+Engelp+Engelpp)/3] } + #if(year==96){ EngleMD <- EngleMD[,Engelm:=(Engel+Engelp+Engelpp+Engeln)/4] } + +# EngleMD <- EngleMD[,Engelm:=Engel] + + + + EngleMD[,Engel:= ifelse(Year==84,Engel*0.9937, + ifelse(Year==85,Engel*0.9938, + ifelse(Year==86,Engel*0.9936, + ifelse(Year==87,Engel*1.0012, + ifelse(Year==88,Engel*0.9963, + ifelse(Year==89,Engel*0.9898, + ifelse(Year==90,Engel*0.9664, + ifelse(Year==91,Engel*1.0269, + ifelse(Year==92,Engel*1.0250, + ifelse(Year==93,Engel*1.0080, + ifelse(Year==94,Engel*1.0006, + ifelse(Year==95,Engel*0.9996, + ifelse(Year==96,Engel*1.0000, + ifelse(Year==97,Engel*1.0379,0))))))))))))))] + EngleMD[,Engelp:= ifelse(Yearp==83,Engelp*1.0063, + ifelse(Yearp==84,Engelp*1.0125, + ifelse(Yearp==85,Engelp*1.0127, + ifelse(Yearp==86,Engelp*1.0053, + ifelse(Yearp==87,Engelp*1.0025, + ifelse(Yearp==88,Engelp*1.0141, + ifelse(Yearp==89,Engelp*1.0454, + ifelse(Yearp==90,Engelp*1.0076, + ifelse(Yearp==91,Engelp*0.95, + ifelse(Yearp==92,Engelp*0.9679, + ifelse(Yearp==93,Engelp*0.9915, + ifelse(Yearp==94,Engelp*0.9999, + ifelse(Yearp==95,Engelp*1.0004, + ifelse(Yearp==96,Engelp*0.9635,0))))))))))))))] + + + + + + + + EngleMD[,Engelpp:= ifelse(Yearpp==82,Engelpp*1.0063, + ifelse(Yearpp==83,Engelpp*1.0125, + ifelse(Yearpp==84,Engelpp*1.0191, + ifelse(Yearpp==85,Engelpp*1.0115, + ifelse(Yearpp==86,Engelpp*1.009, + ifelse(Yearpp==87,Engelpp*1.0128, + ifelse(Yearpp==88,Engelpp*1.0493, + ifelse(Yearpp==89,Engelpp*1.018, + ifelse(Yearpp==90,Engelpp*0.983, + ifelse(Yearpp==91,Engelpp*0.9425, + ifelse(Yearpp==92,Engelpp*0.9673, + ifelse(Yearpp==93,Engelpp*0.9919, + ifelse(Yearpp==94,Engelpp*0.9999, + ifelse(Yearpp==95,Engelpp*0.9639,0))))))))))))))] + EngleMD[,Engelm:=(Engel+Engelp+Engelpp)/3 ] + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleD.rda")) + EngleD <- subset(EngleD,select = c(1,2,3,5,6)) + + EngleMD <- EngleMD[,Engel:=Engelm] + EngleDD <- subset(EngleMD, select = c(cluster3,Engel,Region)) + + EngleD<-merge(EngleD,EngleDD,by=c("cluster3","Region")) + + EngleD[,PovertyLine:=FPLine/Engel] + + + + MD <- merge(MD,EngleD[,.(cluster3,Region,Engel,PovertyLine)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=EngleH,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS_Engle.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + ################Country################## + + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(EngleH,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)]) + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS_Engle.rda")) + + Poors<-MD[FinalPoor==1] + + a<-MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + cluster3==7, + .(x=EngleH)] + +} +FinalClusterEngelPrime_ave <- FinalClusterResults[,.(Year,cluster3,FPLine,PovertyHCR, Engle)] +colnames(FinalClusterEngelPrime_ave)[colnames(FinalClusterEngelPrime_ave) == 'FPLine'] <- 'FPLine_a' +colnames(FinalClusterEngelPrime_ave)[colnames(FinalClusterEngelPrime_ave) == 'PovertyHCR'] <- 'PovertyHCR_a' +load(file=paste0(Settings$HEISProcessedPath,"FINALPOORS_prime.rda")) +FinalClusterEngelPrime_ave <- merge(FinalClusterEngelPrime_ave,FinalClusterEngelPrime, by=c("Year","cluster3")) + +for(year in (1:13)){ + + ggplot(FinalClusterEngelPrime_ave)+ + geom_line(mapping = aes(x=Year,y=PovertyHCR_a,col=factor(cluster3),linetype=factor(cluster3))) +} + +library(xlsx) +write.xlsx(FinalClusterEngelPrime_ave, "E:/FinalClusterEngelPrime_ave.xlsx") +ggplot(FinalClusterEngelPrime_ave)+ + geom_line(mapping = aes(x=Year,y=PovertyHCR_a,col=factor(cluster3),linetype=factor(cluster3))) + +ggplot(FinalClusterEngelPrime_ave)+ + geom_line(mapping = aes(x=Year,y=Engle,col=factor(cluster3),linetype=factor(cluster3))) + +nemo <- FinalClusterEngelPrime_ave[cluster3==3,] +ggplot(nemo)+ + geom_line(mapping = aes(x=Year,y=PovertyHCR_a,col="red"))+ + geom_line(mapping = aes(x=Year,y=PovertyHCR_p,col="blue")) + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/179-Poor_Education.R b/R/Archive/June 2020 (removed code files)/179-Poor_Education.R new file mode 100644 index 00000000..7a8242fc --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/179-Poor_Education.R @@ -0,0 +1,47 @@ + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ POoRS =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +library(readxl) +library(sm) +Eduyears<- data.table(Year=NA_integer_,cluster3=NA_integer_,H_lit_np=NA_integer_ , + H_lit_p=NA_integer_,Region=NA_integer_, + ED_Exp_p=NA_integer_,ED_Exp_np=NA_integer_) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + #year=97 + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + Edu_k<- MD[NKids>0,.(.N,ED_Exp=weighted.mean(Education_Exp,Weight)),by=.(Region,cluster3)] + Edu_poor<- MD[FinalPoor==1&NKids>0,.(.N,H_lit_p=weighted.mean(HLiterate,Weight), + ED_Exp_p=weighted.mean(Education_Exp/Total_Exp_Month,Weight)),by=.(Region,cluster3)] + Edu_Npoor<- MD[FinalPoor==0&NKids>0,.(.N,H_lit_np=weighted.mean(HLiterate,Weight), + ED_Exp_np=weighted.mean(Education_Exp/Total_Exp_Month,Weight)),by=.(Region,cluster3)] + Edu <-merge(Edu_poor,Edu_Npoor) + Edu <-merge(Edu,Edu_k) + Eduy <- Edu + Eduy <- Eduy[,.(H_lit_p,H_lit_np,ED_Exp_np,ED_Exp_p,Region,cluster3)] + Eduy <- Eduy[,Year:=year] + + Eduyears <- rbind(Eduyears,Eduy) + + } +ggplot(Eduyears)+ + geom_line(mapping = aes(x=Year,y=H_lit_p,col=factor(cluster3))) + +ggplot(Eduyears)+ + geom_line(mapping = aes(x=Year,y=ED_Exp_np,col=factor(cluster3))) +pol... +ggplot(Eduyears)+ + geom_line(mapping = aes(x=Year,y=ED_Exp_p,col=factor(cluster3))) diff --git a/R/Archive/June 2020 (removed code files)/180-ShowSomeResults.R b/R/Archive/June 2020 (removed code files)/180-ShowSomeResults.R new file mode 100644 index 00000000..fcd3e413 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/180-ShowSomeResults.R @@ -0,0 +1,53 @@ +# 180-ShowSomeResults.R +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + #MD<-MD[Region=="Urban"] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + # MD[,FinalPoor2:=ifelse(Total_Exp_Month_Per < PovertyLine2,1,0 )] + cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight*Size)],"\t", + # MD[,weighted.mean(PovertyLine2,Weight*Size)],"\t", + MD[,weighted.mean(Engel,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) + + MD[FinalPoor==1,weighted.mean(TFoodKCaloriesHH_Per,Weight)] + MD[FinalPoor==1,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region)] + MD[FinalPoor==1,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region,cluster3)] + + #MD[,crw:=sum(Size*Weight),by=Region] + #MD[,sum((Size*Weight)/crw),by=.(Region,Decile)][order(Region,Decile)] + #MD[,weighted.mean(HIndivNo,Weight)*sum(Weight),by=.(Region,Decile)][order(Region,Decile)] + + MD[FinalPoor==1,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=c("ProvinceCode")][order(ProvinceCode)] + + + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("ProvinceCode")][order(ProvinceCode)] + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","cluster3")][order(Region,cluster3)] + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region")] + MD[,weighted.mean(FinalPoor,Weight*Size)] + MD3<-MD[,.(HHID,FinalPoor,Weight)] + save(MD3,file=paste0(Settings$HEISProcessedPath,"Y",year,"PoorsforMerge.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/181-Poverty Line for Provinces.R b/R/Archive/June 2020 (removed code files)/181-Poverty Line for Provinces.R new file mode 100644 index 00000000..a8f49f53 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/181-Poverty Line for Provinces.R @@ -0,0 +1,282 @@ +#181-Poverty Line for Provinces +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + #Determine Food (Equal 2100 KCal) Bundle + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>5 & i <=15){ + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(NewArea,Region)] + MD <- merge(MD,MDP,by=c("Region","NewArea")) + + x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + MDFinalfood<-MD[,.(HHID,Region,NewArea,NewArea_Name,Percentile,FinalFoodPoor)] +} + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + + EngleD <- MD[TOriginalFoodExpenditure_Per<1.2*FPLine & TOriginalFoodExpenditure_Per>0.8*FPLine, + .(.N,Engel=weighted.median(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine),ProvinceCode=mean(ProvinceCode)),by=.(Region,NewArea_Name)] + EngleD[,PovertyLine:=FPLine/Engel] + + MD[,EngelPersonal:=TOriginalFoodExpenditure/Total_Exp_Month] + TD<-MD[,PersonalPLine:=FPLine/EngelPersonal] + save(TD,file = paste0(Settings$HEISProcessedPath,"Y",year,"MD4test.rda")) + + MD <- merge(MD,EngleD[,.(NewArea_Name,Region,PovertyLine,Engel)],by=c("Region","NewArea_Name")) + #MD<-MD[Region=="Urban" & NewArea==2301] + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight* Size)],"\t", + MD[,weighted.mean(Engel,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) + + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("ProvinceCode")][order(ProvinceCode)] + + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","NewArea_Name")][order(Region,NewArea_Name)] + #MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","cluster3")] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + y2<-EngleD[Region=="Urban",.(PovertyLine,NewArea_Name)] + y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$PovertyLine)]) + ggplot(y2, aes(x = y2$NewArea, y = y2$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + x2<-EngleD[Region=="Rural",.(PovertyLine,NewArea_Name)] + x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$PovertyLine)]) + ggplot(x2, aes(x = x2$NewArea, y = x2$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + load(file="Inflation9096.rda") + EngleD<-merge(EngleD,Inflation9096,by="ProvinceCode") + + if (year==90) { + EngleD90<-EngleD[,PovertyLine9096:=PovertyLine*y9091*y9192*y9293*y9394*y9495*y9596] + EngleD90[,y9091:=NULL] + EngleD90[,y9192:=NULL] + EngleD90[,y9293:=NULL] + EngleD90[,y9394:=NULL] + EngleD90[,y9495:=NULL] + EngleD90[,y9596:=NULL] + save(EngleD90,file="EngleD90.rda") + } + + if (year==91) { + EngleD91<-EngleD[,PovertyLine9196:=PovertyLine*y9192*y9293*y9394*y9495*y9596] + EngleD91[,y9091:=NULL] + EngleD91[,y9192:=NULL] + EngleD91[,y9293:=NULL] + EngleD91[,y9394:=NULL] + EngleD91[,y9495:=NULL] + EngleD91[,y9596:=NULL] + save(EngleD91,file="EngleD91.rda") + } + + if (year==92) { + EngleD92<-EngleD[,PovertyLine9296:=PovertyLine*y9293*y9394*y9495*y9596] + EngleD92[,y9091:=NULL] + EngleD92[,y9192:=NULL] + EngleD92[,y9293:=NULL] + EngleD92[,y9394:=NULL] + EngleD92[,y9495:=NULL] + EngleD92[,y9596:=NULL] + save(EngleD92,file="EngleD92.rda") + } + + if (year==93) { + EngleD93<-EngleD[,PovertyLine9396:=PovertyLine*y9394*y9495*y9596] + EngleD93[,y9091:=NULL] + EngleD93[,y9192:=NULL] + EngleD93[,y9293:=NULL] + EngleD93[,y9394:=NULL] + EngleD93[,y9495:=NULL] + EngleD93[,y9596:=NULL] + save(EngleD93,file="EngleD93.rda") + } + + if (year==94) { + EngleD94<-EngleD[,PovertyLine9496:=PovertyLine*y9495*y9596] + EngleD94[,y9091:=NULL] + EngleD94[,y9192:=NULL] + EngleD94[,y9293:=NULL] + EngleD94[,y9394:=NULL] + EngleD94[,y9495:=NULL] + EngleD94[,y9596:=NULL] + save(EngleD94,file="EngleD94.rda") + } + + if (year==95) { + EngleD95<-EngleD[,PovertyLine9596:=PovertyLine*y9596] + EngleD95[,y9091:=NULL] + EngleD95[,y9192:=NULL] + EngleD95[,y9293:=NULL] + EngleD95[,y9394:=NULL] + EngleD95[,y9495:=NULL] + EngleD95[,y9596:=NULL] + save(EngleD95,file="EngleD95.rda") + } + + if (year==96) { + load(file="EngleD95.rda" ) + load(file="EngleD94.rda" ) + load(file="EngleD93.rda" ) + load(file="EngleD92.rda" ) + load(file="EngleD91.rda" ) + load(file="EngleD90.rda" ) + EngleD96<-EngleD[,PovertyLine9696:=PovertyLine] + save(EngleD96,file="EngleD96.rda") + EngleD96[,N:=NULL] + EngleD96[,Engel:=NULL] + EngleD96[,FPLine:=NULL] + EngleD96[,PovertyLine:=NULL] + EngleD96[,ProvinceCode:=NULL] + EngleD<-merge(EngleD96,EngleD95,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD94,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD93,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD92,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD91,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD90,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091.x:=NULL] + EngleD[,y9192.x:=NULL] + EngleD[,y9293.x:=NULL] + EngleD[,y9394.x:=NULL] + EngleD[,y9495.x:=NULL] + EngleD[,y9091.y:=NULL] + EngleD[,y9192.y:=NULL] + EngleD[,y9293.y:=NULL] + EngleD[,y9394.y:=NULL] + EngleD[,y9495.y:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD[is.na(EngleD)] <- 0 + w <- c( "PovertyLine9696", "PovertyLine9596", + "PovertyLine9496", "PovertyLine9396", + "PovertyLine9296", + "PovertyLine9196", + "PovertyLine9096" + ) + + EngleD[, PovertyLineSum := Reduce(`+`, .SD), .SDcols=w] + EngleD[, PovertyLineMean :=ifelse((NewArea_Name=="Khorasan_Jonoobi" & Region=="Urban") | + (NewArea_Name=="Alborz"), + PovertyLineSum/5,PovertyLineSum/7)] + + + y2<-EngleD[Region=="Urban",.(PovertyLineMean,NewArea_Name)] + y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$PovertyLineMean)]) + ggplot(y2, aes(x = y2$NewArea, y = y2$PovertyLineMean)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + x2<-EngleD[Region=="Rural",.(PovertyLineMean,NewArea_Name)] + x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$PovertyLineMean)]) + ggplot(x2, aes(x = x2$NewArea, y = x2$PovertyLineMean)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + } + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/182- TTests for PLines (other).R b/R/Archive/June 2020 (removed code files)/182- TTests for PLines (other).R new file mode 100644 index 00000000..d33f2f95 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/182- TTests for PLines (other).R @@ -0,0 +1,357 @@ +# 57-T-Test for PLines in Clusters.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ T-Tests =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(spatstat) + +year<-93 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"MD4test.rda")) + +MDH <- TD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine] + +############################################## +PPH <- MDH[ ,.(.N,PPLine=weighted.mean(PersonalPLine,Weight), + FPLine=mean(FPLine),EngelPersonal=mean(EngelPersonal)),by=.(Region,NewArea_Name)] + + +y2<-PPH[Region=="Urban",.(PPLine,NewArea_Name)] +y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$PPLine)]) +ggplot(y2, aes(x = y2$NewArea, y = y2$PPLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +x2<-PPH[Region=="Rural",.(PPLine,NewArea_Name)] +x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$PPLine)]) +ggplot(x2, aes(x = x2$NewArea, y = x2$PPLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +###############Urban############### +#####Cluster 2 +a<-MDH[Region=="Urban" & NewArea==707,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=707 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==1002,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=1002 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==3001,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=3001 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==2202,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=2202 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 8 +a<-MDH[Region=="Urban" & NewArea==30,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=30 & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea_Name=="Gilan",.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea_Name!="Gilan" & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 3 +a<-MDH[Region=="Urban" & NewArea==23,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=23 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Urban" & NewArea_Name=="Sh_Arak",.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea_Name!="Sh_Arak" & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==17,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=17 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==2,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=2 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Urban" & NewArea==916,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=916 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==303,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=303 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==25,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=25 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==808,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=808 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==603,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=603 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==0,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=0 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==22,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=22 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==21,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=21 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==7,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=7 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==26,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=26 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==10,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=10 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==13,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=13 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==20,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=20 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 4 +a<-MDH[Region=="Urban" & NewArea==3,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=3 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==8,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=8 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==19,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=19 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==12,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=12 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==18,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=18 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==24,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=24 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==14,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=14 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==9,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=9 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 5 +a<-MDH[Region=="Urban" & NewArea==6,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=6 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==16,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=16 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==29,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=29 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==4,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=4 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==401,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=401 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==15,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=15 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==5,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=5 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==502,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=502 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 6 +a<-MDH[Region=="Urban" & NewArea==28,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=28 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==27,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=27 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==1105,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=1105 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +###############Rural############### +#####Cluster 1 +a<-MDH[Region=="Rural" & NewArea==30,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=30 & cluster3==1,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==23,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=23 & cluster3==1,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 2 +a<-MDH[Region=="Rural" & NewArea==2,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=2 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==10,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=10 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +###Cluster3 +a<-MDH[Region=="Rural" & NewArea==1,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=1 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Rural" & NewArea==21,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=21 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==17,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=17 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==18,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=18 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 4 +a<-MDH[Region=="Rural" & NewArea==22,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=22 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==3,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=3 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==7,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=7 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==25,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=25 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==26,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=26 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==20,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=20 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 8 +a<-MDH[Region=="Rural" & NewArea==0,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=0 & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==19,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=19 & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==13,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=13 & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 5 + +a<-MDH[Region=="Rural" & NewArea==6,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=6 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==12,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=12 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==14,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=14 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Rural" & NewArea==24,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=24 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==5,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=5 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==8,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=8 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==9,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=9 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Rural" & NewArea==27,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=27 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 6 +a<-MDH[Region=="Rural" & NewArea==4,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=4 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==15,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=15 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==16,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=16 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==28,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=28 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==29,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=29 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/201-ActivityState.R b/R/Archive/June 2020 (removed code files)/201-ActivityState.R new file mode 100644 index 00000000..b21f679a --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/201-ActivityState.R @@ -0,0 +1,56 @@ +# 30-ActivityState.R +# Builds the Wages data.table for households +# +# Copyright © 2018: Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHPubWage =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +ActivityStateTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_ActivityState)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + act <- ActivityStateTables[Year==year] + tab <- act$Table + if(is.na(tab)) + next + UTAct <- Tables[[paste0("U",year,tab)]] + RTAct <- Tables[[paste0("R",year,tab)]] + TAct <- rbind(UTAct,RTAct,fill=TRUE) + + TAct <- TAct[,lapply(.SD, as.numeric)] + summary(TAct) + + for(n in names(TAct)){ + x <- which(act==n) + if(length(x)>0) + setnames(TAct,n,names(act)[x]) + } + + pcols <- intersect(names(TAct),c("HHID","IndivNo","ActivityState")) + TAct <- TAct[,pcols,with=FALSE] + TAct <- TAct[!is.na(ActivityState)] + save(TAct, file = paste0(Settings$HEISProcessedPath,"Y",year,"ActivityState.rda")) + TAct2<-TAct[ActivityState==1] + TAct2<-TAct2[,kar:=1] + TAct2 <- TAct2[,lapply(.SD,sum),by=HHID] + TAct2[,ActivityState:=NULL] + TAct2[,IndivNo:=NULL] + save(TAct2, file = paste0(Settings$HEISProcessedPath,"Y",year,"ActivityState2.rda")) + + +} + \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/202-PubWage.R b/R/Archive/June 2020 (removed code files)/202-PubWage.R new file mode 100644 index 00000000..b2ab5988 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/202-PubWage.R @@ -0,0 +1,105 @@ +# 31-PubWage.R +# Builds the PubWageData data.table for wage income data of +# households working in public sector. +# +# Copyright © 2017-2018: Arin Shahbazian & Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ PubWage =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +PubWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_PubWage)) + +year<-98 +for(year in 84:98){#(Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + pubwt <- PubWageTable[Year==year] + tab <- pubwt$Table + if(is.na(tab)) + next + if(length(tab)>1){ + pubwtu <- pubwt[Region=="U"] + pubwtr <- pubwt[Region=="R"] + }else{ + pubwtu <- pubwt + pubwtr <- pubwt + } + + + tab <- pubwtu$Table + UTpubW <- Tables[[paste0("U",year,tab)]] + for(n in names(UTpubW)){ + x <- which(pubwtu==n) + if(length(x)>0) + setnames(UTpubW,n,names(pubwtu)[x]) + } + + tab <- pubwtr$Table + RTpubW <- Tables[[paste0("R",year,tab)]] + for(n in names(RTpubW)){ + x <- which(pubwtr==n) + if(length(x)>0) + setnames(RTpubW,n,names(pubwtr)[x]) + } + + TpubW <- rbind(RTpubW,UTpubW,fill=TRUE) + + + # print(names(TpubW)) + + pcols <- intersect(names(TpubW),c("HHID","IndivNo","WageSector","HoursPerDay","DayPerWeek","PubWageNetIncomeY","JobCode")) + #pcols <- intersect(names(TpubW),c("HHID","indiv","shaghel","shoghl","current_shoghl","faaliat","section","hour_in_day","day_in_week","gross_income_m","gross_income_y","mostameri_m","mostameri_y","gheyremostameri_m","gheyremostameri_y","net_income_m","net_income_y")) + TpubW <- TpubW[,pcols,with=FALSE] + + if(year <=68){ + TpubW[,WageSector:=1] + }else{ + TpubW <- TpubW[WageSector==1] + } + if(year >= 66){ + TpubW[,HHID:=as.numeric(HHID)] + } + + if(year >= 86){ + TpubW[,PubWageNetIncomeY:=as.numeric(PubWageNetIncomeY)] + } + TpubW[,IndivNo:=as.numeric(IndivNo)] + TpubW[is.na(IndivNo),IndivNo:=1] + + TpubW[is.na(TpubW)] <- 0 + TpubW <- TpubW[PubWageNetIncomeY>0] + + if("HoursPerDay" %in% names(TpubW)){ + print(year) + } + save(TpubW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TpubW.rda")) + + PubWageData <- TpubW[,.(PubWageNetIncomeY=sum(PubWageNetIncomeY), + Hours=sum(HoursPerDay*DayPerWeek), + PubEarners=.N, + Sector=1) +# Sector=factor(WageSector,levels = Settings$SectorsNumbers, labels = Settings$SectorsNames)) + ,by=HHID] + + save(PubWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"PubWage.rda")) + + Pub1<-PubWageData[,.(HHID,PubEarners)] + save(Pub1, file = paste0(Settings$HEISProcessedPath,"Y",year,"Pub1.rda")) + + Pub2<-TpubW[,.(HHID,IndivNo)] + save(Pub2, file = paste0(Settings$HEISProcessedPath,"Y",year,"Pub2.rda")) + + } +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/203-PrvWage.R b/R/Archive/June 2020 (removed code files)/203-PrvWage.R new file mode 100644 index 00000000..a5a1ea3c --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/203-PrvWage.R @@ -0,0 +1,107 @@ +# 32-PrvWage.R +# Builds the PrvWageData data.table for wage income data of +# households working in private sector. +# +# Copyright © 2017-2018: Arin Shahbazian & Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ PrvWage =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +PrvWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_PrvWage)) + + +for(year in 84:98){#(Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + prvwt <- PrvWageTable[Year==year] + tab <- prvwt$Table + if(is.na(tab)) + next + if(length(tab)>1){ + prvwtu <- prvwt[Region=="U"] + prvwtr <- prvwt[Region=="R"] + }else{ + prvwtu <- prvwt + prvwtr <- prvwt + } + + + tab <- prvwtu$Table + UTprvW <- Tables[[paste0("U",year,tab)]] + for(n in names(UTprvW)){ + x <- which(prvwtu==n) + if(length(x)>0) + setnames(UTprvW,n,names(prvwtu)[x]) + } + + tab <- prvwtr$Table + RTprvW <- Tables[[paste0("R",year,tab)]] + for(n in names(RTprvW)){ + x <- which(prvwtr==n) + if(length(x)>0) + setnames(RTprvW,n,names(prvwtr)[x]) + } + + TprvW <- rbind(RTprvW,UTprvW,fill=TRUE) + + pcols <- intersect(names(TprvW),c("HHID","IndivNo","WageSector","PrvWageNetIncomeY","JobCode")) + TprvW <- TprvW[,pcols,with=FALSE] + + # Consider Cooperative sector as prviate sector + if(year <= 68){ + TprvW[,WageSector:= 3] + }else{ + TprvW <- TprvW[ WageSector !=1 ] + if(year <=76){ + TprvW[,WageSector:=WageSector+1] + } + } + # if(year %in% 69:76){ + # TPrvW <- TPrvW[ WageSector ==2 ] + # } else if(year %in% 77:94){ + # TPrvW <- TPrvW[ WageSector ==3 ] + # } + + if(year >= 66){ + TprvW[,HHID:=as.numeric(HHID)] + } + + if(year >= 86){ + TprvW[,PrvWageNetIncomeY:=as.numeric(PrvWageNetIncomeY)] + } + TprvW[,IndivNo:=as.numeric(IndivNo)] + TprvW[is.na(IndivNo),IndivNo:=1] + + TprvW[is.na(TprvW)] <- 0 + TprvW <- TprvW[PrvWageNetIncomeY>0] + save(TprvW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TprvW.rda")) + + PrvWageData <- TprvW[,.(PrvWageNetIncomeY=sum(PrvWageNetIncomeY), + PrvEarners=.N, + Sector=10) + # Sector=factor(WageSector,levels = Settings$SectorsNumbers, labels = Settings$SectorsNames)) + ,by=HHID] + + save(PrvWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"PrvWages.rda")) + # print(mean(PrvWageData$PrvWageNetIncomeY)) + + Prv1<-PrvWageData[,.(HHID,PrvEarners)] + save(Prv1, file = paste0(Settings$HEISProcessedPath,"Y",year,"Prv1.rda")) + + Prv2<-TprvW[,.(HHID,IndivNo)] + save(Prv2, file = paste0(Settings$HEISProcessedPath,"Y",year,"Prv2.rda")) + +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/204-BussInc.R b/R/Archive/June 2020 (removed code files)/204-BussInc.R new file mode 100644 index 00000000..1255cbfb --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/204-BussInc.R @@ -0,0 +1,77 @@ +# 33- HHBussInc.R +# +# Builds the bussiness income data.table for households +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ BussInc =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +bussWageTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_BussInc)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + busswt <- bussWageTable[Year==year] + tab <- busswt$Table + if(is.na(tab)) + next + UTbussW <- Tables[[paste0("U",year,tab)]] + RTbussW <- Tables[[paste0("R",year,tab)]] + TbussW <- rbind(UTbussW,RTbussW,fill=TRUE) + + + for(n in names(TbussW)){ + x <- which(busswt==n) + if(length(x)>0) + setnames(TbussW,n,names(busswt)[x]) + } + pcols <- intersect(names(TbussW),c("HHID","IndivNo","WorkType","BSector","BussNetIncomeY","JobCode")) + TbussW <- TbussW[,pcols,with=FALSE] + + + if(year <= 68){ + TbussW[,BSector:=2] + }else{ + TbussW <- TbussW[BSector==2] + } + + + if(year >= 84){ + TbussW[,BussNetIncomeY:=as.numeric(BussNetIncomeY)] + } + + TbussW[is.na(TbussW)] <- 0 + TbussW2<-TbussW[WorkType==4,.(HHID,WorkType)] + save(TbussW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TbussW.rda")) + + + BussIncomeData <- TbussW[,.(BussNetIncomeY=sum(BussNetIncomeY), + BussEarners=.N, + Sector=100), + # Sector=factor(4,levels = Settings$SectorsNumbers, labels = Settings$SectorsNames)) + ,by=HHID] + + + save(BussIncomeData, file = paste0(Settings$HEISProcessedPath,"Y",year,"BussIncome.rda")) + + Buss1<-BussIncomeData[,.(HHID,BussEarners)] + save(Buss1, file = paste0(Settings$HEISProcessedPath,"Y",year,"Buss1.rda")) + + Buss2<-TbussW[,.(HHID,IndivNo)] + save(Buss2, file = paste0(Settings$HEISProcessedPath,"Y",year,"Buss2.rda")) + + } +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/205-AgriInc.R b/R/Archive/June 2020 (removed code files)/205-AgriInc.R new file mode 100644 index 00000000..f2924a2f --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/205-AgriInc.R @@ -0,0 +1,73 @@ +# 34-AggrInc.R +#Builds the Agricultral Wages data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHAggrIncTable =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +AgriIncTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_AgriInc)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Agriwt <- AgriIncTable[Year==year] + tab <- Agriwt$Table + if(is.na(tab)) + next + UTAgriW <- Tables[[paste0("U",year,tab)]] + RTAgriW <- Tables[[paste0("R",year,tab)]] + TAgriW <- rbind(UTAgriW,RTAgriW,fill=TRUE) + for(n in names(TAgriW)){ + x <- which(Agriwt==n) + if(length(x)>0) + setnames(TAgriW,n,names(Agriwt)[x]) + } + pcols <- intersect(names(TAgriW),c("HHID","IndivNo","WorkType","BSector","AgriNetIncomeY","JobCode")) + TAgriW <- TAgriW[,pcols,with=FALSE] + + if(year <= 68){ + TAgriW[,BSector:=1] + }else{ + TAgriW <- TAgriW[BSector==1] + } + + if(year >= 84){ + TAgriW[,AgriNetIncomeY:=as.numeric(AgriNetIncomeY)] + } + + TAgriW[is.na(TAgriW)] <- 0 + TAgriW2<-TAgriW[WorkType==4,.(HHID,WorkType)] + save(TAgriW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TAgriW.rda")) + + + AgriIncomeData <- TAgriW[,.(AgriNetIncomeY=sum(AgriNetIncomeY), + AgriEarners=.N, + Sector=1000) + # Sector=factor(5,levels = Settings$SectorsNumbers, labels = Settings$SectorsNames)) + ,by=HHID] + + + save(AgriIncomeData, file = paste0(Settings$HEISProcessedPath,"Y",year,"AgriWages.rda")) + + Agri1<-AgriIncomeData[,.(HHID,AgriEarners)] + save(Agri1, file = paste0(Settings$HEISProcessedPath,"Y",year,"Agri1.rda")) + + Agri2<-TAgriW[,.(HHID,IndivNo)] + save(Agri2, file = paste0(Settings$HEISProcessedPath,"Y",year,"Agri2.rda")) + + } +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/206-Aid.R b/R/Archive/June 2020 (removed code files)/206-Aid.R new file mode 100644 index 00000000..2168acc1 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/206-Aid.R @@ -0,0 +1,53 @@ +# 35-Aid.R +# Builds the AidIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHAidIncome =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +AidTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Aid)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Aidwt <- AidTable[Year==year] + tab <- Aidwt$Table + if(is.na(tab)) + next + UTAidW <- Tables[[paste0("U",year,tab)]] + RTAidW <- Tables[[paste0("R",year,tab)]] + TAidW <- rbind(UTAidW,RTAidW,fill=TRUE) + for(n in names(TAidW)){ + x <- which(Aidwt==n) + if(length(x)>0) + setnames(TAidW,n,names(Aidwt)[x]) + } + pcols <- intersect(names(TAidW),c("HHID","Code","aid","IndivNo")) + TAidW <- TAidW[,pcols,with=FALSE] + if(year %in% 63:68){ + TAidW <- TAidW[Code %in% Aidwt$StartCode:Aidwt$EndCode] + } + if(year %in% 84:94){ + TAidW[,aid:=as.numeric(aid)] + } + TAidW[is.na(TAidW)] <- 0 + save(TAidW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TAidW.rda")) + + AidWageData <- TAidW[,lapply(.SD,sum),by=HHID] + save(AidWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"AidWage.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/207-Homemade.R b/R/Archive/June 2020 (removed code files)/207-Homemade.R new file mode 100644 index 00000000..d8226721 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/207-Homemade.R @@ -0,0 +1,51 @@ +# 35-Homemade.R +# Builds the HomemadeIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHHomemadeIncome =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +HomemadeTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Homemade)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Homemadewt <- HomemadeTable[Year==year] + tab <- Homemadewt$Table + if(is.na(tab)) + next + UTHomemadeW <- Tables[[paste0("U",year,tab)]] + RTHomemadeW <- Tables[[paste0("R",year,tab)]] + THomemadeW <- rbind(UTHomemadeW,RTHomemadeW,fill=TRUE) + for(n in names(THomemadeW)){ + x <- which(Homemadewt==n) + if(length(x)>0) + setnames(THomemadeW,n,names(Homemadewt)[x]) + } + pcols <- intersect(names(THomemadeW),c("HHID","Code","homemade","IndivNo")) + THomemadeW <- THomemadeW[,pcols,with=FALSE] + if(year %in% 63:68){ + THomemadeW <- THomemadeW[Code %in% Homemadewt$StartCode:Homemadewt$EndCode] + } + + THomemadeW[is.na(THomemadeW)] <- 0 + save(THomemadeW, file = paste0(Settings$HEISProcessedPath,"Y",year,"THomemadeW.rda")) + + HomemadeWageData <- THomemadeW[,lapply(.SD,sum),by=HHID] + save(HomemadeWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"HomemadeWage.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/208-Interest.R b/R/Archive/June 2020 (removed code files)/208-Interest.R new file mode 100644 index 00000000..374a579c --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/208-Interest.R @@ -0,0 +1,50 @@ +# 35-Interest.R +# Builds the InterestIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHInterestIncome =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +InterestTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Interest)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Interestwt <- InterestTable[Year==year] + tab <- Interestwt$Table + if(is.na(tab)) + next + UTInterestW <- Tables[[paste0("U",year,tab)]] + RTInterestW <- Tables[[paste0("R",year,tab)]] + TInterestW <- rbind(UTInterestW,RTInterestW,fill=TRUE) + for(n in names(TInterestW)){ + x <- which(Interestwt==n) + if(length(x)>0) + setnames(TInterestW,n,names(Interestwt)[x]) + } + pcols <- intersect(names(TInterestW),c("HHID","Code","interest","IndivNo")) + TInterestW <- TInterestW[,pcols,with=FALSE] + if(year %in% 63:68){ + TInterestW <- TInterestW[Code %in% Interestwt$StartCode:Interestwt$EndCode] + } + TInterestW[is.na(TInterestW)] <- 0 + save(TInterestW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TInterestW.rda")) + + InterestWageData <- TInterestW[,lapply(.SD,sum),by=HHID] + save(InterestWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"InterestWage.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/209-Intra.R b/R/Archive/June 2020 (removed code files)/209-Intra.R new file mode 100644 index 00000000..5d620500 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/209-Intra.R @@ -0,0 +1,51 @@ +# 35-Intra.R +# Builds the IntraIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHIntraIncome =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +IntraTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Intra)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Intrawt <- IntraTable[Year==year] + tab <- Intrawt$Table + if(is.na(tab)) + next + UTIntraW <- Tables[[paste0("U",year,tab)]] + RTIntraW <- Tables[[paste0("R",year,tab)]] + TIntraW <- rbind(UTIntraW,RTIntraW,fill=TRUE) + for(n in names(TIntraW)){ + x <- which(Intrawt==n) + if(length(x)>0) + setnames(TIntraW,n,names(Intrawt)[x]) + } + pcols <- intersect(names(TIntraW),c("HHID","Code","intra","IndivNo")) + TIntraW <- TIntraW[,pcols,with=FALSE] + if(year %in% 63:68){ + TIntraW <- TIntraW[Code %in% Intrawt$StartCode:Intrawt$EndCode] + } + + TIntraW[is.na(TIntraW)] <- 0 + save(TIntraW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TIntraW.rda")) + + IntraWageData <- TIntraW[,lapply(.SD,sum),by=HHID] + save(IntraWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"IntraWage.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/210-OtherIncome.R b/R/Archive/June 2020 (removed code files)/210-OtherIncome.R new file mode 100644 index 00000000..aef08554 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/210-OtherIncome.R @@ -0,0 +1,70 @@ +# 35-OtherIncome.R +# Builds the OtherIncome data.table for households +# +# Copyright © 2018: Arin Shahbazian, Majid Einian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ OtherIncome =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#source("funcdefs.R") + +library(data.table) +library(stringr) +library(readxl) + +OtherIncomeTable <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_OtherInc)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + OtherITb <- OtherIncomeTable[Year==year] + tab <- OtherITb$Table + if(is.na(tab)) + next + UOtherIncomeData <- Tables[[paste0("U",year,tab)]] + ROtherIncomeData <- Tables[[paste0("R",year,tab)]] + OtherIncomeData <- rbind(UOtherIncomeData,ROtherIncomeData,fill=TRUE) + + OtherIncomeData <- OtherIncomeData[,lapply(.SD, as.numeric)] + + if(!is.na(OtherITb$Code)){ # 63 to 68 + setnames(OtherIncomeData,OtherITb$HHID,"HHID") + setnames(OtherIncomeData,OtherITb$Code,"Code") + setnames(OtherIncomeData,OtherITb$Value,"Value") + OtherIncomeData[Code %in% eval(parse(text = OtherITb$Retirement)), + Retirement:=sum(Value),by=HHID] + OtherIncomeData[Code %in% eval(parse(text = OtherITb$Rent)), + Rent:=sum(Value),by=HHID] + OtherIncomeData[Code %in% eval(parse(text = OtherITb$Interest)), + Interest:=sum(Value),by=HHID] + OtherIncomeData[Code %in% eval(parse(text = OtherITb$Aid)), + Aid:=sum(Value),by=HHID] + OtherIncomeData[Code %in% eval(parse(text = OtherITb$HomeProduction)), + HomeProduction:=sum(Value),by=HHID] + }else{ # 69+ + for(n in names(OtherIncomeData)){ + x <- which(OtherITb==n) + if(length(x)>0) + setnames(OtherIncomeData,n,names(OtherITb)[x]) + } + } + pcols <- intersect(names(OtherIncomeData), + c("Code","Retirement","Rent", + "Interest","Aid","HomeProduction","Intra")) + OtherIncomeData <- OtherIncomeData[,lapply(.SD, sum, na.rm=TRUE), + by=HHID,.SDcols=pcols] + OtherIncomeData <- OtherIncomeData[,lapply(.SD, function(x){x[is.na(x)]<-0;return(x)}), by=HHID, .SDcols=pcols] + OtherIncomeData[, OtherIncome := Reduce(`+`, .SD), .SDcols=pcols] + save(OtherIncomeData, + file = paste0(Settings$HEISProcessedPath,"Y",year,"OtherIncome.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) +cat(" seconds. ") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/211-Rent.R b/R/Archive/June 2020 (removed code files)/211-Rent.R new file mode 100644 index 00000000..64d5e6f3 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/211-Rent.R @@ -0,0 +1,50 @@ +# 35-Rent.R +# Builds the RentIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHRentIncome =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +RentTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rent)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Rentwt <- RentTable[Year==year] + tab <- Rentwt$Table + if(is.na(tab)) + next + UTRentW <- Tables[[paste0("U",year,tab)]] + RTRentW <- Tables[[paste0("R",year,tab)]] + TRentW <- rbind(UTRentW,RTRentW,fill=TRUE) + for(n in names(TRentW)){ + x <- which(Rentwt==n) + if(length(x)>0) + setnames(TRentW,n,names(Rentwt)[x]) + } + pcols <- intersect(names(TRentW),c("HHID","Code","rent","IndivNo")) + TRentW <- TRentW[,pcols,with=FALSE] + if(year %in% 63:68){ + TRentW <- TRentW[Code %in% Rentwt$StartCode:Rentwt$EndCode] + } + TRentW[is.na(TRentW)] <- 0 + save(TRentW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TRentW.rda")) + + RentWageData <- TRentW[,lapply(.SD,sum),by=HHID] + save(RentWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"RentWage.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/212-Retirement.R b/R/Archive/June 2020 (removed code files)/212-Retirement.R new file mode 100644 index 00000000..48bfc512 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/212-Retirement.R @@ -0,0 +1,51 @@ +# 35-Retirement.R +# Builds the RetirementIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHRetirementIncome =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +RetirementTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Retirement)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + Retirementwt <- RetirementTable[Year==year] + tab <- Retirementwt$Table + if(is.na(tab)) + next + UTRetirementW <- Tables[[paste0("U",year,tab)]] + RTRetirementW <- Tables[[paste0("R",year,tab)]] + TRetirementW <- rbind(UTRetirementW,RTRetirementW,fill=TRUE) + for(n in names(TRetirementW)){ + x <- which(Retirementwt==n) + if(length(x)>0) + setnames(TRetirementW,n,names(Retirementwt)[x]) + } + pcols <- intersect(names(TRetirementW),c("HHID","Code","retirement","IndivNo")) + TRetirementW <- TRetirementW[,pcols,with=FALSE] + if(year %in% 63:68){ + TRetirementW <- TRetirementW[Code %in% Retirementwt$StartCode:Retirementwt$EndCode] + } + + TRetirementW[is.na(TRetirementW)] <- 0 + save(TRetirementW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TRetirementW.rda")) + + RetirementWageData <- TRetirementW[,lapply(.SD,sum),by=HHID] + save(RetirementWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"RetirementWage.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/213-Subsidy.R b/R/Archive/June 2020 (removed code files)/213-Subsidy.R new file mode 100644 index 00000000..b4a6557a --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/213-Subsidy.R @@ -0,0 +1,50 @@ +# 36-Subsidy.R +# Builds the SubsidyIncome data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHSubsidy =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +SubsidyTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Subsidy)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + Subsidywt <- SubsidyTable[Year==year] + tab <- Subsidywt$Table + if(is.na(tab)) + next + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + UTSubsidyW <- Tables[[paste0("U",year,tab)]] + RTSubsidyW <- Tables[[paste0("R",year,tab)]] + TSubsidyW <- rbind(UTSubsidyW,RTSubsidyW,fill=TRUE) + for(n in names(TSubsidyW)){ + x <- which(Subsidywt==n) + if(length(x)>0) + setnames(TSubsidyW,n,names(Subsidywt)[x]) + } + pcols <- intersect(names(TSubsidyW),c("HHID","IndivNo","dimension","Subsidy")) + TSubsidyW <- TSubsidyW[,pcols,with=FALSE] + + + + TSubsidyW[is.na(TSubsidyW)] <- 0 + save(TSubsidyW, file = paste0(Settings$HEISProcessedPath,"Y",year,"TSubsidyW.rda")) + + SubsidyWageData <- TSubsidyW[,lapply(.SD,sum),by=HHID] + save(SubsidyWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/214-Total_Income.R b/R/Archive/June 2020 (removed code files)/214-Total_Income.R new file mode 100644 index 00000000..155ab230 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/214-Total_Income.R @@ -0,0 +1,66 @@ +# 38-Total_Income.R +# +# Copyright © 2017:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ TotalIncome =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + + +#source("funcdefs.R") + +library(readxl) +library(data.table) +bigdt <- data.table(V1=NA_integer_,N=NA_integer_,year=NA_integer_)[0] +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear: ",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"PubWage.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"PrvWages.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BussIncome.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"AgriWages.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"OtherIncome.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) + + PubWageData[,Sector:=NULL] + PrvWageData[,Sector:=NULL] + BussIncomeData[,Sector:=NULL] + AgriIncomeData[,Sector:=NULL] + + #MyIncome<-merge(HHBase,PubWageData,by =c("HHID"),all=TRUE) + + IncomeTable <- merge(HHBase[,.(HHID)],PubWageData,by="HHID",all.x = TRUE) + IncomeTable <- merge(IncomeTable,PrvWageData,by="HHID",all.x = TRUE) + IncomeTable <- merge(IncomeTable,BussIncomeData,by="HHID",all.x = TRUE) + IncomeTable <- merge(IncomeTable,AgriIncomeData,by="HHID",all.x = TRUE) + IncomeTable <- merge(IncomeTable,OtherIncomeData,by="HHID",all.x = TRUE) + IncomeTable <- merge(IncomeTable,SubsidyWageData,by="HHID",all.x = TRUE) + + + IncomeTable <- IncomeTable[,lapply(.SD, function(x){x[is.na(x)]<-0;return(x)})] + + + IncomeTable[, NetIncome := PubWageNetIncomeY+PrvWageNetIncomeY+BussNetIncomeY+AgriNetIncomeY+OtherIncome] + + IncomeTable[PubWageNetIncomeY>0 | PubEarners>0, WorkClass:="Pub"] + IncomeTable[is.na(WorkClass) & PrvWageNetIncomeY >0, WorkClass:="Prv"] + IncomeTable[is.na(WorkClass) & BussNetIncomeY>0 , WorkClass:="Buss"] + IncomeTable[is.na(WorkClass) & AgriNetIncomeY>0 , WorkClass:="Agri"] + IncomeTable[is.na(WorkClass) & OtherIncome>0, WorkClass:="Retr"] + + IncomeTable[,WorkClass:=factor(WorkClass)] + + + save(IncomeTable, file = paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) + +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) +cat(" seconds. ") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/221-Loans.R b/R/Archive/June 2020 (removed code files)/221-Loans.R new file mode 100644 index 00000000..517a73e4 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/221-Loans.R @@ -0,0 +1,80 @@ +# 40-Loans +# +# Copyright © 2016: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Loans =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +LoanTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Loans)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + ty <- LoanTables[Year==year] + tab <- ty$Table + if(is.na(tab)) + next + + UTL <- Tables[[paste0("U",year,tab)]] + RTL <- Tables[[paste0("R",year,tab)]] + TL <- rbind(UTL,RTL) + for(n in names(TL)){ + x <- which(ty==n) + if(length(x)>0) + setnames(TL,n,names(ty)[x]) + } + pcols <- intersect(names(TL),c("HHID","Code","ServiceFee","LoanValue","BankName")) + TL <- TL[,pcols,with=FALSE] + TL <- TL[Code %in% c(ty$NonHousingLoan,ty$HousingLoan)] + TL[,ServiceFee:=as.numeric(ServiceFee)] + if("LoanValue" %in% pcols){ + TL[,LoanValue:=as.numeric(LoanValue)] + TL[,p:=ServiceFee/LoanValue] + } + HTL <- TL[Code==ty$HousingLoan] + setnames(HTL,names(HTL)[3:ncol(HTL)],paste0("H",names(HTL)[3:ncol(HTL)])) + HTL[,Code:=NULL] + NTL <- TL[Code==ty$NonHousingLoan] + NTL[,Code:=NULL] + + LoansData <- merge(NTL,HTL,all = TRUE,by="HHID") +# LoansData[,BankName:=NULL] +# LoansData[,HBankName:=NULL] + LoansData <- LoansData[,lapply(.SD, function(x){if(class(x)=="numeric"){x[is.na(x)]<-0};return(x)})] + + LoansData <- LoansData[,lapply(.SD,sum),by=HHID] + +# if("LoanValue" %in% names(LoansData)){ +# cat("\n",year,",", +# # mean(LoansData$ServiceFee/LoansData$LoanValue,na.rm = TRUE)) +# mean(LoansData$ServiceFee,na.rm = TRUE), mean(LoansData$LoanValue,na.rm = TRUE)) +# +# } +# if("HLoanValue" %in% names(LoansData)){ +# cat(",", +# # mean(LoansData$HServiceFee/LoansData$HLoanValue,na.rm = TRUE)) +# mean(LoansData$HServiceFee,na.rm = TRUE), mean(LoansData$HLoanValue,na.rm = TRUE)) +# } + + # cat("\n",year,",",mean(LoansData$ServiceFee,na.rm = TRUE),",",mean(LoansData$HServiceFee,na.rm = TRUE), + # ",",mean(LoansData$LoanValue,na.rm = TRUE),",",mean(LoansData$HLoanValue,na.rm = TRUE)) + + save(LoansData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Loans.rda")) +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/222-HouseAsset.R b/R/Archive/June 2020 (removed code files)/222-HouseAsset.R new file mode 100644 index 00000000..46de5eed --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/222-HouseAsset.R @@ -0,0 +1,92 @@ +# 40-Houses +# +# +# Copyright © 2016: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Houses =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +HouseTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_House)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + ty <- HouseTables[Year==year][,1:7] + tab <- ty$Table + + UTL <- Tables[[paste0("U",year,tab)]] + RTL <- Tables[[paste0("R",year,tab)]] + TL <- rbind(UTL,RTL) + for(n in names(TL)){ + x <- which(ty==n) + if(length(x)>0) + setnames(TL,n,names(ty)[x]) + } + pcols <- intersect(names(TL),c("HHID","Code","ServiceExp")) + TL <- TL[,pcols,with=FALSE] + TL <- TL[Code %in% ty$StartCode:ty$EndCode] + TL[,ServiceExp:=as.numeric(ServiceExp)] + + TL[,Code:=NULL] + + + TL[is.na(TL)] <- 0 + + HouseData <- TL[,lapply(.SD,sum),by=HHID] + + # if("HouseValue" %in% names(HousesData)){ + # cat("\n",year,",", + # # mean(HousesData$ServiceFee/HousesData$HouseValue,na.rm = TRUE)) + # mean(HousesData$ServiceFee,na.rm = TRUE), mean(HousesData$HouseValue,na.rm = TRUE)) + # + # } + # if("HHouseValue" %in% names(HousesData)){ + # cat(",", + # # mean(HousesData$HServiceFee/HousesData$HHouseValue,na.rm = TRUE)) + # mean(HousesData$HServiceFee,na.rm = TRUE), mean(HousesData$HHouseValue,na.rm = TRUE)) + # } + +# cat("\n",year,",",mean(HouseData$ServiceExp,na.rm = TRUE)) + ty <- HouseTables[Year==year] + rt <- Tables[[paste0("R",year,ty$HATable)]] + ut <- Tables[[paste0("U",year,ty$HATable)]] + + if(year <= 68){ + rt$New <- NA + setnames(rt,"New",ty$HACode) + } + ns <- c(ty$HAHHID,ty$HRCode,ty$HACode) + + TRA <- rbind( rt[,ns,with=FALSE], ut[,ns,with=FALSE]) + + setnames(TRA,ty$HAHHID,"HHID") + setnames(TRA,ty$HRCode,"Rooms") + setnames(TRA,ty$HACode,"Area") + + TRA[Area==0,Area:=NA] + + HouseData <- merge(HouseData,TRA,by = "HHID", all = TRUE) + HouseData$MetrPrice <-HouseData$ServiceExp/HouseData$Area + save(HouseData, file = paste0(Settings$HEISProcessedPath,"Y",year,"House.rda")) + # cat(summary(HouseData[,ServiceExp/Area])) + cat(HouseData[,mean(MetrPrice)],"\n") + cat(HouseData[,median(MetrPrice)],"\n") + cat(HouseData[,mean(ServiceExp)],"\n") + cat(HouseData[,median(ServiceExp)],"\n") +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/224-Insurance.R b/R/Archive/June 2020 (removed code files)/224-Insurance.R new file mode 100644 index 00000000..13e13884 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/224-Insurance.R @@ -0,0 +1,60 @@ +# 42-Insurance ### NOT WORKING ANYMORE +# Note: for now only health insurance, TODO: add other insurance types +# +# Copyright © 2017: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Insurance =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +InsuranceTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Insurance)) + + +for(year in (Settings$startyear:Settings$endyear)){ + + ty <- InsuranceTables[Year==year] + tab <- ty$Table + if(is.na(tab)) + next + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + UTI <- Tables[[paste0("U",year,tab)]] + RTI <- Tables[[paste0("R",year,tab)]] + rm(Tables) + TI <- rbind(UTI,RTI) + + for(n in names(TI)){ + x <- which(ty==n) + if(length(x)>0) + setnames(TI,n,names(ty)[x]) + } + + pcols <- intersect(names(TI),c("HHID","Code","InsuredCount","InsuranceCosts")) + TI <- TI[,pcols,with=FALSE] + TI <- TI[Code %in% ty$StartCode:ty$EndCode] + TI[,InsuredCount:=as.numeric(InsuredCount)] + + TI[is.na(TI)] <- 0 + TI[,THI:=ifelse(Code %in% c(ty$SS1,ty$SS2),1,0)] + + InsuranceData <- TI[,.(InsuredCount=sum(InsuredCount),THI=sum(THI)),by=HHID] + InsuranceData[,THI:=ifelse(THI>0,1,0)] + + save(InsuranceData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Insurance.rda")) +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/225--LoanAnalysis.R b/R/Archive/June 2020 (removed code files)/225--LoanAnalysis.R new file mode 100644 index 00000000..4cf7246a --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/225--LoanAnalysis.R @@ -0,0 +1,64 @@ +# 43-Loans Analysis +# +# +# Copyright © 2018: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Loans Analysis =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(survey) + + +bigX <- data.table(WorkClass=NA_character_,ProvinceCode=NA_integer_,X=NA_real_,Year=NA_integer_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + cat(paste0("\n",year,",")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Loans.rda")) | + !file.exists(paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) ) + next + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Loans.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file = paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) + D <- merge(HHBase[,.(HHID, Region, Year, Quarter, Month, ProvinceCode)], LoansData,by="HHID", all.x = TRUE) + D[, GotLoan := ifelse(!is.na(ServiceFee),1,0)] + D <- merge(D, HHI,all = TRUE) + D <- merge(D, HHWeights[,.(HHID,Weight)], all = TRUE) + D <- merge(D, IncomeTable) + D <- D[!is.na(Weight)] + + X <- D[,.(X=sum(GotLoan*Weight)/sum(Weight)*100),by=.(WorkClass,ProvinceCode)] + X[,Year:=year] + bigX <- rbind(bigX,X) + + svDataL <- svydesign(ids = ~1,data = D,weights = D$Weight) + + probit_model <- svyglm(GotLoan ~ Region + HSex + HAge + I(HAge^2) + + HEmployed + HMarritalState + Size + HLiterate + WorkClass + NetIncome + , design=svDataL, family=binomial(link="probit")) + print(summary(probit_model)) + mgf <- svycontrast(probit_model, quote( + (exp(`(Intercept)` + WorkClassPub) / (exp(`(Intercept)` + WorkClassPub) + 1)) - + (exp(`(Intercept)`) / (exp(`(Intercept)`) + 1)))) + x <- mgf[1] + y <- sqrt(attr(mgf,"var")) + cat(",",x*100,",",(x-1.96*y)*100,",",(x+1.96*y)*100) + # Can't use custom functions like expit :_( +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + +library(XLConnect) +writeWorksheetToFile("D:/Loans.xlsx",bigX,"Sheet1") diff --git a/R/Archive/June 2020 (removed code files)/226-Loan-TS.R b/R/Archive/June 2020 (removed code files)/226-Loan-TS.R new file mode 100644 index 00000000..cc8a28c4 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/226-Loan-TS.R @@ -0,0 +1,86 @@ +# 45-Loan-TS +# +# +# Copyright © 2017: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Loans =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = numeric(0), Year = integer(0), + Quarter = numeric(0), Month = numeric(0), ProvinceCode = integer(0), + ServiceFee = numeric(0), HServiceFee = numeric(0), + Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Loans.rda"))) + { cat("next") + next + } + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Loans.rda")) + + if(year >=76) + load(file = paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + else + HHWeights <- data.table(Year=year) + D <- merge(HHBase,LoansData,by="HHID", all.x = TRUE) + + W <- HHWeights + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, ServiceFee, HServiceFee, Weight)] + + D[is.na(Quarter), Quarter:=4] + + BigD <- rbind(BigD,D) + +# cat("\n",year,",",sum(D$ServiceFee*D$Weight, na.rm = TRUE)) +} + +BigD <- BigD[is.na(ServiceFee),ServiceFee:=0] +BigD <- BigD[is.na(HServiceFee),HServiceFee:=0] +BigD <- BigD[!is.na(Weight)] + +S.Q <- BigD[,.(SF=sum(ServiceFee*Weight, na.rm = TRUE), + HSF=sum(HServiceFee*Weight, na.rm = TRUE), + LP=weighted.mean(ifelse(ServiceFee>0,1,0),Weight, na.rm = TRUE), + HLP=weighted.mean(ifelse(HServiceFee>0,1,0),Weight, na.rm = TRUE)), + by=.(Year,Quarter)] +S.Y <- BigD[,.(SF=sum(ServiceFee*Weight, na.rm = TRUE), + HSF=sum(HServiceFee*Weight, na.rm = TRUE), + LP=weighted.mean(ifelse(ServiceFee>0,1,0),Weight, na.rm = TRUE), + HLP=weighted.mean(ifelse(HServiceFee>0,1,0),Weight, na.rm = TRUE)), + by=Year] + +writeWorksheetToFile(data = S.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"), + sheet = "Loan.Q") +writeWorksheetToFile(data = S.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"), + sheet = "Loan.Y") + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/227-House-TS.R b/R/Archive/June 2020 (removed code files)/227-House-TS.R new file mode 100644 index 00000000..59a6d3f5 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/227-House-TS.R @@ -0,0 +1,68 @@ +# 46-House-TS +# +# +# Copyright © 2017: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ House =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(Region = character(0), HHID = integer(0), Year = integer(0), + Quarter = integer(0), Month = integer(0), ProvinceCode = integer(0), + ServiceExp = numeric(0), Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"House.rda")) + load(file = paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + + D <- merge(HHBase,HouseData,by="HHID", all.x = TRUE) + + + W <- HHWeights + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + D <- D[,list(HHID, Region, Year, Quarter, Month, ProvinceCode, ServiceExp, Weight)] + + D[is.na(Quarter), Quarter:=4] + + BigD <- rbind(BigD,D) + + # cat("\n",year,",",sum(D$ServiceExp, na.rm = TRUE), + # ",",sum(D$Weight, na.rm = TRUE), + # ",",sum(D$ServiceExp*D$Weight, na.rm = TRUE)) +} +if(year %in% 63:69){ + BigD[,ServiceExp:=as.numeric(ServiceExp)] + BigD[,ServiceExp=0] +} +S <- BigD[,list(SX=sum(ServiceExp*Weight, na.rm = TRUE)), by=list(Year,Quarter)] + + +writeWorksheetToFile(data = S, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"), + sheet = "House") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/228-Insurance-TS.R b/R/Archive/June 2020 (removed code files)/228-Insurance-TS.R new file mode 100644 index 00000000..016f95b4 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/228-Insurance-TS.R @@ -0,0 +1,82 @@ +# 47-Insurance-TS ## +# +# +# Copyright © 2017: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Insurance =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(HHID = integer(0), Region = character(0), Year = integer(0), + Quarter = integer(0), Month = integer(0), ProvinceCode = integer(0), + Size = numeric(0), InsuredCount = numeric(0), Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"Insurance.rda"))) + next + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Insurance.rda")) + load(file = paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + + D <- merge(HHBase,HHI,by="HHID",all.x = TRUE) + D <- merge(D,InsuranceData,by="HHID", all.x = TRUE) + + + W <- HHWeights + W[,Year:=NULL] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,c("HHID","Region", "Year", "Quarter", "Month", "ProvinceCode", + "Size", "InsuredCount", "THI", "Weight"), with=FALSE] + + D[is.na(Quarter), Quarter:=4] + D <- D[!is.na(Size)] + + D[THI>0,InsuredCount:=Size] + D[InsuredCount>Size,InsuredCount:=Size] + D[,THI:=NULL] + D[is.na(InsuredCount),InsuredCount:=0] + BigD <- rbind(BigD,D) +} + +S.Q <- BigD[,.(Pop = sum(Size*Weight), Insured = sum(InsuredCount*Weight, na.rm = TRUE)), + by = .(Year,Quarter)] +S.Y <- BigD[,.(Pop = sum(Size*Weight), Insured = sum(InsuredCount*Weight, na.rm = TRUE)), + by = .(Year)] +S.Q[,PctInsured := Insured / Pop * 100] +S.Y[,PctInsured := Insured / Pop * 100] + +writeWorksheetToFile(data = S.Q, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"), + sheet = "Insurance.Q") +writeWorksheetToFile(data = S.Y, file = paste0(Settings$HEISResultsPath,"Timeseries.xlsx"), + sheet = "Insurance.Y") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + + + diff --git a/R/Archive/June 2020 (removed code files)/229-FinServices.R b/R/Archive/June 2020 (removed code files)/229-FinServices.R new file mode 100644 index 00000000..37d5661f --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/229-FinServices.R @@ -0,0 +1,57 @@ +# 229-FinServices ### NOT WORKING ANYMORE + +# Copyright © 2017: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ FinServices =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +FinServicesTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_FinServices)) + + +for(year in (Settings$startyear:Settings$endyear)){ + + ty <- FinServicesTables[Year==year] + tab <- ty$Table + if(is.na(tab)) + next + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + UTI <- Tables[[paste0("U",year,tab)]] + RTI <- Tables[[paste0("R",year,tab)]] + rm(Tables) + TI <- rbind(UTI,RTI) + + for(n in names(TI)){ + x <- which(ty==n) + if(length(x)>0) + setnames(TI,n,names(ty)[x]) + } + + pcols <- intersect(names(TI),c("HHID","Code","FinServicesExp")) + TI <- TI[,pcols,with=FALSE] + TI <- TI[Code %in% ty$StartCode:ty$EndCode] + TI[,FinServicesExp:=as.numeric(FinServicesExp)] + + TI[is.na(TI)] <- 0 + + FinServicesData <- TI[,.(FinServicesExp =sum(FinServicesExp)),by=HHID] + + save(FinServicesData, file = paste0(Settings$HEISProcessedPath,"Y",year,"FinServices.rda")) +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/230-FinServices-TS.R b/R/Archive/June 2020 (removed code files)/230-FinServices-TS.R new file mode 100644 index 00000000..c92ec77a --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/230-FinServices-TS.R @@ -0,0 +1,91 @@ +# 230-FinServices-TS ## +# +# +# Copyright © 2017: Majid Einian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ FinServices =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(XLConnect) + +RegionWeights <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Rough_Weights)) + +BigD <- data.table(HHID = integer(0), Region = character(0), Year = integer(0), + Quarter = integer(0), Month = integer(0), ProvinceCode = integer(0), + Size = numeric(0), FinServicesExp=numeric(0), Weight = numeric(0)) + + +for(year in (Settings$startyear:Settings$endyear)){ + if(!file.exists(paste0(Settings$HEISProcessedPath,"Y",year,"FinServices.rda"))) + next + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinServices.rda")) + load(file = paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + + D <- merge(HHBase,HHI,by="HHID",all.x = TRUE) + D <- merge(D,FinServicesData,by="HHID", all.x = TRUE) + + + W <- data.table(HHWeights) + W[,Year:=NULL] + W[,HHID:=as.numeric(HHID)] + W_Rough <- RegionWeights[Year==year] + W_Rough <- W_Rough[,list(Region,Weight)] + if(nrow(W)==0){ + D <- merge(D,W_Rough,by="Region", all.x = TRUE) + }else{ + D <- merge(D,W,by="HHID", all.x = TRUE) + } + + D <- D[,c("HHID","Region", "Year", "Quarter", "Month", "ProvinceCode", + "CountyCode","County_Name", + "Size", "FinServicesExp", "Weight"), with=FALSE] + + D[is.na(Quarter), Quarter:=4] + D <- D[!is.na(Size)] + + BigD <- rbind(BigD,D) +} + + +BigD[,HasFinService:=ifelse(is.na(FinServicesExp),0,1)] +S.Q.P <- BigD[,.(SS=.N, + Pop = sum(Size*Weight), + FinServicesExp = sum(FinServicesExp*Weight, na.rm = TRUE), + HasFinService = sum(HasFinService*Weight)), + by = .(Year,Quarter,ProvinceCode)][order(ProvinceCode,Year,Quarter)] +S.Y.P <- S.Q.P <- BigD[,.(SS=.N, + Pop = sum(Size*Weight), + FinServicesExp = sum(FinServicesExp*Weight, na.rm = TRUE), + HasFinService = sum(HasFinService*Weight)), + by = .(Year,ProvinceCode)][order(ProvinceCode,Year)] + +S.Q.P[,PctFinService := HasFinService / Pop * 100] +S.Q.P[,PcpFinService := FinServicesExp / Pop * 100] +S.Y.P[,PctFinService := HasFinService / Pop * 100] +S.Y.P[,PcpFinService := FinServicesExp / Pop * 100] + +writeWorksheetToFile(data = S.Q.P, file = paste0(Settings$HEISResultsPath,"Panel.xlsx"), + sheet = "FinServices.Q") +writeWorksheetToFile(data = S.Y.P, file = paste0(Settings$HEISResultsPath,"Panel.xlsx"), + sheet = "FinServices.Y") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + + + diff --git a/R/Archive/June 2020 (removed code files)/271-Step1-MergeData.R b/R/Archive/June 2020 (removed code files)/271-Step1-MergeData.R new file mode 100644 index 00000000..543a6812 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/271-Step1-MergeData.R @@ -0,0 +1,170 @@ +#171-Step 1.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + #load Demos+FoodPrices+Weights + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) + HHBase<-merge(HHBase,lactating,by="HHID") + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Calorie_Need.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFoodPrice.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights<-HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + + + + #load Expenditures + + for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Furnitures","HotelRestaurants", + "HouseandEnergys","House", "Medicals","Hygienes","Transportations","Others", + "Resturants" + )){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"NonFreeDurableData.rda")) + + } + + # load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Added_Food.rda")) + + #load Calories + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + FData[,Region:=NULL] + #for (col in c("FoodKCaloriesHH")) FData[is.na(get(col)), (col) := 0] + FData <- FData[FoodKCaloriesHH>0] + + #merge groups + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + FData[,Size:=NULL] + MD<-merge(MD,FData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,HHWeights ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodData,by =c("HHID"),all=TRUE) + # MD<-merge(MD,Added_Food,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseandEnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelRestaurantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HygieneData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BenzinData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,GazData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BarghData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,NaftSefidData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,NonFreeDurableData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ResturantData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,InvestmentData,by =c("HHID"),all=TRUE) + for (col in c("OriginalFoodExpenditure","FoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "Education_Exp", "HouseandEnergy_Exp", + "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", "Transportation_Exp", + "Other_Exp", "Medical_Exp", "NonFreeDurable_Exp", + "Resturant_Exp","ServiceExp" + )) + MD[is.na(get(col)), (col) := 0] + # MD<-MD[,Yaraneh:=416000*Size] + + MD<-merge(MD,Calorie_Need) + + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Durablele_Detail.rda")) + #MD<-merge(MD,Durablele_Detail) + + + + cpi97 <- read_excel("C:/Users/pc1/Desktop/cpi97.xlsx") + cpi97<-as.data.table(cpi97) + cpi97<-cpi97[Month>0] + cpi97<-cpi97[,Year:=NULL] + cpi97<-cpi97[,PeriodYear:=NULL] + cpi97<-cpi97[,.(Month,FoodDrink_Index,Cigar_Index,Cloth_Index,HouseEnergy_Index, + Furniture_Index,Hygiene_Index,Transportation_Index, + Communication_Index,Amusement_Index,Hotel_Index, + Other_Index,Durable_Index,Total_Index)] + + MD<-merge(MD,cpi97,by=c("Month"),all.x=TRUE) + + FoodDrink_Index98<-219.7 + Cigar_Index98<-281.1 + Cloth_Index98<-197.8 + HouseEnergy_Index98<-155.1 + Furniture_Index98<-225.1 + Hygiene_Index98<-158.1 + Transportation_Index98<-195.9 + Communication_Index98<-146.7 + Amusement_Index98<-224.5 + Hotel_Index98<-182.0 + Other_Index98<-199.5 + Durable_Index98<-259.2 + Total_Index98<-185.1 + + #Calculate Monthly Total Expenditures + nw <- c("FoodExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" ) + #w <- c(nw, "Medical_Exp", "Remain_Durable") + w <- c(nw, "Medical_Exp", "NonFreeDurable_Exp") + #w <- c(nw, "Medical_Exp", "Durable_Pure_Exp") + # pw <- c(nw, "Added_Food_Exp_Month") + #Lw <- c(pw, "Medical_Exp", "Durable_Exp") + + MD<-MD[,FoodExpenditure:=FoodExpenditure*FoodDrink_Index98/FoodDrink_Index] + MD<-MD[,OriginalFoodExpenditure:=OriginalFoodExpenditure*FoodDrink_Index98/FoodDrink_Index] + MD<-MD[,Cigar_Exp:=Cigar_Exp*Cigar_Index98/Cigar_Index] + MD<-MD[,Cloth_Exp:=Cloth_Exp*Cloth_Index98/Cloth_Index] + MD<-MD[,HouseandEnergy_Exp:=HouseandEnergy_Exp*HouseEnergy_Index98/HouseEnergy_Index] + MD<-MD[,Furniture_Exp:=Furniture_Exp*Furniture_Index98/Furniture_Index] + MD<-MD[,Hygiene_Exp:=Hygiene_Exp*Hygiene_Index98/Hygiene_Index] + MD<-MD[,Medical_Exp:=Medical_Exp*Hygiene_Index98/Hygiene_Index] + MD<-MD[,Transportation_Exp:=Transportation_Exp*Transportation_Index98/Transportation_Index] + MD<-MD[,Communication_Exp:=Communication_Exp*Communication_Index98/Communication_Index] + MD<-MD[,Amusement_Exp:=Amusement_Exp*Amusement_Index98/Amusement_Index] + MD<-MD[,HotelRestaurant_Exp:=HotelRestaurant_Exp*Hotel_Index98/Hotel_Index] + MD<-MD[,Other_Exp:=Other_Exp*Other_Index98/Other_Index] + MD<-MD[,NonFreeDurable_Exp:=NonFreeDurable_Exp*Durable_Index98/Durable_Index] + + MD[is.na(MD)] <- 0 + + MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + MD[,weighted.mean(Total_Exp_Month,Weight)] + MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN198.rda")) + cat(MD[,weighted.mean(Total_Exp_Month,Weight)]) + + x<-MD[,.(FoodExpenditure,OriginalFoodExpenditure,FoodExpenditure-OriginalFoodExpenditure)] +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/272-Step2-CaloryEqSize.R b/R/Archive/June 2020 (removed code files)/272-Step2-CaloryEqSize.R new file mode 100644 index 00000000..e2991031 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/272-Step2-CaloryEqSize.R @@ -0,0 +1,191 @@ +#172- Step 2.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculationg Equal size calorie =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +Final <- data.table(Year=NA_integer_,Exp=NA_integer_,ProvinceCode=NA_real_)[0] +Educ <- data.table(Year=NA_integer_,Educ=NA_integer_,ProvinceCode=NA_real_)[0] +Marrital <- data.table(Year=NA_integer_,Marrital=NA_integer_,ProvinceCode=NA_real_)[0] +Sex <- data.table(Year=NA_integer_,Sex=NA_integer_,ProvinceCode=NA_real_)[0] +HeadEmploy <- data.table(Year=NA_integer_,HeadEmploy=NA_integer_,ProvinceCode=NA_real_)[0] +WomanEmploy <- data.table(Year=NA_integer_,WomanEmploy=NA_integer_,ProvinceCode=NA_real_)[0] +NumberEmploy <- data.table(Year=NA_integer_,NumberEmploy=NA_integer_,ProvinceCode=NA_real_)[0] + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + cat("\n") + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN198.rda")) + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + + #MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all.x = TRUE) + MD<-MD[Size!=0 & OriginalFoodExpenditure!=0 & !is.na(FoodKCaloriesHH)] + #MD[,Home_Per_Metr:=MetrPrice/EqSizeOECD] + + #Calculate Per Values + MD[,EqSizeCalory3 :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + + MD[,EqSizeCalory := + NAge1B *(Settings$ KCaloryNeed_B1 /Calorie_Need_WorldBank)+ + NAge2B *(Settings$ KCaloryNeed_B2 /Calorie_Need_WorldBank)+ + NAge3B *(Settings$ KCaloryNeed_B3 /Calorie_Need_WorldBank)+ + NAge4B *(Settings$ KCaloryNeed_B4 /Calorie_Need_WorldBank)+ + NAge5B *(Settings$ KCaloryNeed_B5 /Calorie_Need_WorldBank)+ + NAge6B *(Settings$ KCaloryNeed_B6 /Calorie_Need_WorldBank)+ + NAge7B *(Settings$ KCaloryNeed_B7 /Calorie_Need_WorldBank)+ + NAge8B *(Settings$ KCaloryNeed_B8 /Calorie_Need_WorldBank)+ + NAge9B *(Settings$ KCaloryNeed_B9 /Calorie_Need_WorldBank)+ + NAge10B *(Settings$ KCaloryNeed_B10 /Calorie_Need_WorldBank)+ + NAge1G *(Settings$ KCaloryNeed_G1 /Calorie_Need_WorldBank)+ + NAge2G *(Settings$ KCaloryNeed_G2 /Calorie_Need_WorldBank)+ + NAge3G *(Settings$ KCaloryNeed_G3 /Calorie_Need_WorldBank)+ + NAge4G *(Settings$ KCaloryNeed_G4 /Calorie_Need_WorldBank)+ + NAge5G *(Settings$ KCaloryNeed_G5 /Calorie_Need_WorldBank)+ + NAge6G *(Settings$ KCaloryNeed_G6 /Calorie_Need_WorldBank)+ + NAge7G *(Settings$ KCaloryNeed_G7 /Calorie_Need_WorldBank)+ + NAge8G *(Settings$ KCaloryNeed_G8 /Calorie_Need_WorldBank)+ + NAge9G *(Settings$ KCaloryNeed_G9 /Calorie_Need_WorldBank)+ + NAge10G *(Settings$ KCaloryNeed_G10 /Calorie_Need_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_WorldBank)] + + MD[,EqSizeCalory2 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Calorie_Need_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Calorie_Need_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Calorie_Need_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Calorie_Need_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Calorie_Need_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Calorie_Need_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Calorie_Need_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Calorie_Need_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Calorie_Need_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Calorie_Need_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Calorie_Need_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Calorie_Need_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Calorie_Need_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Calorie_Need_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Calorie_Need_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Calorie_Need_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Calorie_Need_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Calorie_Need_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_Anstitoo)] + + MD[,EqSizeCalory4 := + NAge1B*(Settings$KCaloryNeed_B1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2B*(Settings$KCaloryNeed_B2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3B*(Settings$KCaloryNeed_B3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4B*(Settings$KCaloryNeed_B4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5B*(Settings$KCaloryNeed_B5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6B*(Settings$KCaloryNeed_B6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7B*(Settings$KCaloryNeed_B7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8B*(Settings$KCaloryNeed_B8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9B*(Settings$KCaloryNeed_B9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10B*(Settings$KCaloryNeed_B10/Settings$KCaloryNeed_Adult_WorldBank)+ + NAge1G*(Settings$KCaloryNeed_G1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2G*(Settings$KCaloryNeed_G2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3G*(Settings$KCaloryNeed_G3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4G*(Settings$KCaloryNeed_G4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5G*(Settings$KCaloryNeed_G5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6G*(Settings$KCaloryNeed_G6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7G*(Settings$KCaloryNeed_G7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8G*(Settings$KCaloryNeed_G8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9G*(Settings$KCaloryNeed_G9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10G*(Settings$KCaloryNeed_G10/Settings$KCaloryNeed_Adult_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_WorldBank)] + + MD[,EqSizeCalory5 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Settings$KCaloryNeed_Adult_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_Anstitoo)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN298.rda")) + + MD[,weighted.mean(EqSizeCalory,Weight)] + MD[,weighted.mean(EqSizeCalory2,Weight)] + MD[,weighted.mean(EqSizeCalory4,Weight)] + MD[,weighted.mean(EqSizeCalory5,Weight)] + MD[,weighted.mean(EqSizeCalory3,Weight)] + + # X1 <- MD[,.(Exp=weighted.mean(Total_Exp_Month_Per,Weight)),by=ProvinceCode] + # X1[,Year:=year] + #Final <- rbind(Final,X1) + #write.csv(Final,file = "Exp.csv") + + # X2 <- MD[,.(Educ=weighted.mean(HEduYears>12,Weight,na.rm = TRUE)),by=ProvinceCode] + # X2[,Year:=year] + # Educ <- rbind(Educ,X2) + # write.csv(Educ,file = "Educ.csv") + + #X3 <- MD[,.(Marrital=weighted.mean(HMarritalState=="Married",Weight,na.rm = TRUE)),by=ProvinceCode] + #X3[,Year:=year] + #Marrital <- rbind(Marrital,X3) + #write.csv(Marrital,file = "Marrital.csv") + + # X4 <- MD[,.(Sex=weighted.mean(HSex=="Female",Weight,na.rm = TRUE)),by=ProvinceCode] + # X4[,Year:=year] + #Sex <- rbind(Sex,X4) + #write.csv(Sex,file = "Sex.csv") + + # X5 <- MD[,.(HeadEmploy=weighted.mean(HActivityState=="Employed",Weight,na.rm = TRUE)),by=ProvinceCode] + # X5[,Year:=year] + #HeadEmploy <- rbind(HeadEmploy,X5) + # write.csv(HeadEmploy,file = "HeadEmploy.csv") + + # load(file = paste0(Settings$HEISProcessedPath,"Y",year,"WomanEmployed.rda")) + #load(file = paste0(Settings$HEISProcessedPath,"Y",year,"NumberEmployed.rda")) + + # MD<-merge(MD,WomanEmployed,all.x = TRUE) + # MD<-merge(MD,NumberEmployed,all.x = TRUE) + # MD[is.na(MD)] <- 0 + + # X6 <- MD[,.(WomanEmploy=weighted.mean(indivsum,Weight,na.rm = TRUE)),by=ProvinceCode] + # X6[,Year:=year] + #WomanEmploy <- rbind(WomanEmploy,X6) + # write.csv(WomanEmploy,file = "WomanEmploy.csv") + + #X7 <- MD[,.(NumberEmploy=weighted.mean(numbersum,Weight,na.rm = TRUE)),by=ProvinceCode] + #X7[,Year:=year] + # NumberEmploy <- rbind(NumberEmploy,X7) + #write.csv(NumberEmploy,file = "NumberEmploy.csv") + + cat(MD[,weighted.mean(Total_Exp_Month_Per,Weight)]) +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/273-Step3-TFoodPer.R b/R/Archive/June 2020 (removed code files)/273-Step3-TFoodPer.R new file mode 100644 index 00000000..770d8721 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/273-Step3-TFoodPer.R @@ -0,0 +1,54 @@ +#173- Step 3.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculationg Per values =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN298.rda")) + + + #MD[,Relative_Calorie1 :=FoodKCaloriesHH/Calorie_Need1] + #MD[,Relative_Calorie2 :=FoodKCaloriesHH/Calorie_Need2] + MD[,OriginalFoodExpenditure_Per :=OriginalFoodExpenditure/EqSizeCalory] + MD[,FoodKCaloriesHH_Per:=FoodKCaloriesHH/EqSizeCalory] + MD[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] + + #Calculate per_Calory from resturants + MD[,Calory_Price:=(OriginalFoodExpenditure_Per/FoodKCaloriesHH_Per)] + MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)] + MD[,ResturantKCalories:=(Settings$OutFoodKCXShare*Resturant_Exp)/Calory_Price_Area] + for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] + MD[,TFoodKCaloriesHH:=FoodKCaloriesHH+ResturantKCalories] + MD[,TOriginalFoodExpenditure:=OriginalFoodExpenditure+Resturant_Exp] + + MD[,TOriginalFoodExpenditure_Per :=TOriginalFoodExpenditure/EqSizeCalory] + MD[,TFoodKCaloriesHH_Per:=TFoodKCaloriesHH/EqSizeCalory] + + ############################################################## + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN398.rda")) + + +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/274-Step4-RealDeciles.R b/R/Archive/June 2020 (removed code files)/274-Step4-RealDeciles.R new file mode 100644 index 00000000..48889484 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/274-Step4-RealDeciles.R @@ -0,0 +1,187 @@ +#174-FindInitialPoor.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN398.rda")) + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + + Compare1<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + ###Nominal- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable)] #Deciling in Urban- Rural(Nominal) + #SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Nominal- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + SMDIterationPoor[,sum(ThisIterationPoor),by=.(Region,NewArea_Name)][order(Region,NewArea_Name)] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD98.rda")) + + #cat("\n",sum(SMD[ProvinceCode==2,.N])) + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + SMD[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + SMD[,sum(Size*Weight),by=.(Region,Decile)][order(Region,Decile)] + + SMD[,weighted.mean(Size,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + # NewDecile<-SMD[,.(HHID,Decile)] + # names(NewDecile)<-c("HHID","NewDecile") + # save(NewDecile,file=paste0(Settings$HEISProcessedPath,"Y",year,"NewDecile.rda")) + + # OldDecile<-SMD[,.(HHID,Decile)] + # names(OldDecile)<-c("HHID","OldDecile") + # save(OldDecile,file=paste0(Settings$HEISProcessedPath,"Y",year,"OldDecile.rda")) + + } + + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewDecile.rda")) + #DecileCompare<-merge(as.data.table(OldDecile),NewDecile,by="HHID") + #DecileCompare[,Diff:=as.numeric(NewDecile)-as.numeric(OldDecile)] + #DecileCompare2<- DecileCompare[,.(.N),by=Diff] + + #ggplot(DecileCompare2, aes(fill=factor(Diff), y=N, x=factor(Diff))) + + # geom_bar(position="dodge", stat="identity") + theme_bw() + + # theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + # geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea_Name,Region)] + MD[,sum(Weight*Size), by=.(Decile,Region)][order(Region,Decile)] + MD[,sum(Weight*Size), by=.(Decile_Nominal,Region)][order(Region,Decile_Nominal)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor98.rda")) + + } + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/275-Step5-AddClusterInfo.R b/R/Archive/June 2020 (removed code files)/275-Step5-AddClusterInfo.R new file mode 100644 index 00000000..4ae1848f --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/275-Step5-AddClusterInfo.R @@ -0,0 +1,117 @@ +#183-Clustering(93-96).R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +library(dplyr) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor98.rda")) + + #####Clustering##### + dt2Urban<-MD[Region=="Urban",.(NewArea,NewArea_Name,Region,HHID)] + dt2Rural<-MD[Region=="Rural",.(NewArea,NewArea_Name,Region,HHID)] + + #####Urban##### + dt2Urban<-dt2Urban[NewArea_Name=="Sh_Tehran",cluster3:=1] + + dt2Urban<-dt2Urban[NewArea_Name=="Sh_Shiraz" | NewArea_Name=="Sh_Esfahan" | + NewArea_Name=="Sh_Bandarabas" | + NewArea_Name=="Sh_Karaj" | + NewArea_Name=="Sh_Rasht", + cluster3:=2] + + dt2Urban<-dt2Urban[NewArea_Name=="Gilan" | NewArea_Name=="Alborz" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Ghazvin" | + NewArea_Name=="Markazi" | NewArea_Name=="Esfahan" | + NewArea_Name=="Ghom" | NewArea_Name=="Sh_Arak" | + NewArea_Name=="Tehran" | NewArea_Name=="Sh_Tabriz" | + NewArea_Name=="Mazandaran" | NewArea_Name=="Sh_Yazd" , + cluster3:=3] + + dt2Urban<-dt2Urban[ NewArea_Name=="Yazd" | + NewArea_Name=="Sh_Kerman" | + NewArea_Name=="Sh_Hamedan" | + NewArea_Name=="Chaharmahal" | + NewArea_Name=="Zanjan" | NewArea_Name=="Hamedan" | + NewArea_Name=="Sh_Mashhad" | NewArea_Name=="Sh_Urmia" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Hormozgan"| + NewArea_Name=="Booshehr" | + NewArea_Name=="Semnan" | NewArea_Name=="Fars", + cluster3:=4] + + dt2Urban<-dt2Urban[ NewArea_Name=="Sh_Kermanshah" | NewArea_Name== "Az_Sharghi" | + NewArea_Name=="Kerman" | + NewArea_Name=="Ardebil" | + NewArea_Name=="Ilam" , + cluster3:=5] + + dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" | NewArea_Name=="Kordestan" | + NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Kermanshah" | NewArea_Name=="Lorestan" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Golestan", + cluster3:=6] + + dt2Urban<-dt2Urban[NewArea_Name=="Sistan" | NewArea_Name=="Sh_Zahedan", + cluster3:=7] + + save(dt2Urban,file ="dt2Urban.rda") + #####Rural##### + dt2Rural<-dt2Rural[ NewArea_Name=="Tehran" | NewArea_Name=="Alborz", + cluster3:=8] + + dt2Rural<-dt2Rural[NewArea_Name=="Esfahan" | NewArea_Name=="Mazandaran" , + cluster3:=9] + + dt2Rural<-dt2Rural[ NewArea_Name=="Ghazvin" | NewArea_Name=="Yazd" | + NewArea_Name=="Gilan" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Booshehr", + cluster3:=10] + + dt2Rural<-dt2Rural[ NewArea_Name=="Zanjan" | + NewArea_Name=="Chaharmahal"| NewArea_Name=="Hormozgan" | NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Ghom" | + NewArea_Name=="Fars" | + NewArea_Name=="Markazi" | NewArea_Name=="Semnan", + cluster3:=11] + + dt2Rural<-dt2Rural[ NewArea_Name=="Hamedan" | + NewArea_Name=="Az_Gharbi" | NewArea_Name=="Kermanshah" | + NewArea_Name=="Kerman" | NewArea_Name=="Golestan" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Lorestan" | + NewArea_Name=="Kordestan"| + NewArea_Name=="Khoozestan" | + NewArea_Name=="Ardebil" | NewArea_Name=="Ilam", + cluster3:=12] + + dt2Rural<-dt2Rural[ NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Sistan" , + cluster3:=13] + + save(dt2Rural,file ="dt2Rural.rda") + #####Merge##### + dt2total<-rbind(dt2Urban,dt2Rural) + + + dt2total[,HHID:=NULL] + dt2total<-distinct(dt2total) + + MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered98.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/276-Step6-FoodBasicNeeds.R b/R/Archive/June 2020 (removed code files)/276-Step6-FoodBasicNeeds.R new file mode 100644 index 00000000..29c5698b --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/276-Step6-FoodBasicNeeds.R @@ -0,0 +1,76 @@ +#176-Step 6- FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor98.rda")) + MD<-MD[CountyCode==2301] + #load(file = "CPI.rda") + #CPI<-as.data.table(CPI) + #CPI<-CPI[,Decile:=as.character(Decile)] + #MD<-merge(MD,CPI,by="Decile") + + #Determine Food (Equal 2100 KCal) Bundle + #MDPoors<-MD[InitialPoor==1] + MD[,NewPoor:=InitialPoor] + #MD[,NewPoor:=ifelse(Decile %in% c(1,2,3,4),1,0)] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ +# cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(Region)] + MD <- merge(MD,MDP,by=c("Region")) +# print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor98.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + #MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/277-Step 7 ,8,9-PovertyLines.R b/R/Archive/June 2020 (removed code files)/277-Step 7 ,8,9-PovertyLines.R new file mode 100644 index 00000000..d6eeca04 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/277-Step 7 ,8,9-PovertyLines.R @@ -0,0 +1,348 @@ +# 177- Step 7,8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor98.rda")) + + #MD<-MD[Region=="Rural"] + #MD<-MD[cluster3==13] +MD<-MD[CountyCode==2301] + + + EngleD<- MD[TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region)] + + + + EngleD[,PovertyLine:=FPLine/Engel] + MD <- merge(MD,EngleD[,.(Region,PovertyLine,Engel)],by=c("Region")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS98.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + cat(MD[, weighted.mean(FPLine,Weight*Size)],"\t") + cat(MD[, sum(Weight*Size)],"\t") + cat(MD[, weighted.mean(Engel,Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + Poors<-MD[FinalPoor==1] + +MD[,weighted.mean(Bundle_Value,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(Bundle_Value,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(Bundle_Value,Weight),by=.(Region)][order(Region)] +MD[,weighted.mean(Bundle_Value,Weight)] + +MD[,weighted.mean(FPLine,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(FPLine,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(FPLine,Weight),by=.(Region)][order(Region)] +MD[,weighted.mean(FPLine,Weight)] + +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region)][order(Region)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight)] + +MD[as.numeric(Decile)==1,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region)][order(Region)] +MD[as.numeric(Decile)==1,weighted.mean(TFoodKCaloriesHH_Per,Weight)] + +MD[,weighted.mean(OriginalFoodExpenditure_Per,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(OriginalFoodExpenditure_Per,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(OriginalFoodExpenditure_Per,Weight),by=.(Region)][order(Region)] +MD[,weighted.mean(OriginalFoodExpenditure_Per,Weight)] + +MD[FinalPoor==1,weighted.mean(OriginalFoodExpenditure_Per,Weight),by=.(Region)][order(Region)] +MD[FinalPoor==1,weighted.mean(OriginalFoodExpenditure_Per,Weight)] + +D<-MD[,.(Food=weighted.mean(FoodExpenditure,Weight.x), + Total=weighted.mean(Total_Exp_Month,Weight.x))] + +D1<-MD[,.(Food=weighted.mean(FoodExpenditure,Weight.x), + Total=weighted.mean(Total_Exp_Month,Weight.x)),by=Decile] + +D2<-MD[,.(Food=weighted.mean(FoodExpenditure/EqSizeCalory,Weight.x), + Total=weighted.mean(Total_Exp_Month_Per,Weight.x)),by=Decile] + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodCon.rda")) +MD<-merge(MD,TotalFoodCon,by="HHID") + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) +MD<-merge(MD,TotalFoodExp,by="HHID") + + +MD[,weighted.mean(G0111,Weight.x)] +MD[,weighted.mean(G01181,Weight.x)] +MD[,weighted.mean(G01121,Weight.x)] +MD[,weighted.mean(G01176,Weight.x)] +MD[,weighted.mean(G01131,Weight.x)] +MD[,weighted.mean(`011164`,Weight.x)] +MD[,weighted.mean(`011424`,Weight.x)] +MD[,weighted.mean(G0116,Weight.x)] +MD[,weighted.mean(G01123,Weight.x)] +MD[,weighted.mean(G01114,Weight.x)] +MD[,weighted.mean(`011428`,Weight.x)] +MD[,weighted.mean(G01153+G01152+G01151,Weight.x)] +MD[,weighted.mean(G0117,Weight.x)] +MD[,weighted.mean(G01141,Weight.x)] +MD[,weighted.mean(`011731`,Weight.x)] +MD[,weighted.mean(G01144,Weight.x)] +MD[,weighted.mean(G01165+G01166,Weight.x)] + +MD[FinalPoor==1,weighted.mean(G0111,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01181,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01121+SheepMeatGram,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01176,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01131,Weight.x)] +MD[FinalPoor==1,weighted.mean(`011164`,Weight.x)] +MD[FinalPoor==1,weighted.mean(`011424`,Weight.x)] +MD[FinalPoor==1,weighted.mean(G0116,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01123,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01114,Weight.x)] +MD[FinalPoor==1,weighted.mean(`011428`,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01153+G01152+G01151,Weight.x)] +MD[FinalPoor==1,weighted.mean(G0117,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01141,Weight.x)] +MD[FinalPoor==1,weighted.mean(`011731`,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01144,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01165+G01166,Weight.x)] + +MD[,weighted.mean(G0111,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01181,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01121+SheepMeatGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01176,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01131,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(`011164`,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(`011424`,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G0116,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01123,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01114,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(`011428`,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01153+G01152+G01151,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G0117,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01141,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(`011731`,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01144,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01165+G01166,Weight.x), by=Decile][order(Decile)] + + +MD[,weighted.mean(GrainGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(GhandGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(CowMeatGram+SheepMeatGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(BeansGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(FishandShrimpsGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(MacaroniGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Yogurt_PasturizedGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(TreeFruitsGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(PoultryMeat_MGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(BreadGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Cheese_PasturizedGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Oil_NabatiGram+Oil_AnimalGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Sabzi_AshGram+Sabzi_KhordanGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(MilkGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(SibzaminiGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(NutsGrams,Weight), by=Decile][order(Decile)] + +MD[,weighted.mean(GrainGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(GhandGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(CowMeatGram+SheepMeatGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(BeansGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(FishandShrimpsGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(MacaroniGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Yogurt_PasturizedGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(TreeFruitsGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(PoultryMeat_MGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(BreadGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Cheese_PasturizedGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Oil_NabatiGram+Oil_AnimalGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Sabzi_AshGram+Sabzi_KhordanGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(MilkGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(SibzaminiGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(NutsGrams,Weight.x), by=Decile][order(Decile)] + + +MD[FinalPoor==1,weighted.mean(GrainGrams,Weight)] +MD[FinalPoor==1,weighted.mean(GhandGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(CowMeatGram+SheepMeatGram,Weight)] +MD[FinalPoor==1,weighted.mean(BeansGrams,Weight)] +MD[FinalPoor==1,weighted.mean(FishandShrimpsGrams,Weight)] +MD[FinalPoor==1,weighted.mean(MacaroniGram,Weight)] +MD[FinalPoor==1,weighted.mean(Yogurt_PasturizedGram,Weight)] +MD[FinalPoor==1,weighted.mean(TreeFruitsGrams,Weight)] +MD[FinalPoor==1,weighted.mean(PoultryMeat_MGram,Weight)] +MD[FinalPoor==1,weighted.mean(BreadGrams,Weight)] +MD[FinalPoor==1,weighted.mean(Cheese_PasturizedGram,Weight)] +MD[FinalPoor==1,weighted.mean(Oil_NabatiGram+Oil_AnimalGram,Weight)] +MD[FinalPoor==1,weighted.mean(Sabzi_AshGram+Sabzi_KhordanGram,Weight)] +MD[FinalPoor==1,weighted.mean(MilkGrams,Weight)] +MD[FinalPoor==1,weighted.mean(SibzaminiGram,Weight)] +MD[FinalPoor==1,weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight)] +MD[FinalPoor==1,weighted.mean(NutsGrams,Weight)] + + +MD[as.numeric(Decile)==1,weighted.mean(GrainGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(GhandGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Cow_LiveGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(BeansGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(FishandShrimpsGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(MacaroniGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Yogurt_PasturizedGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(TreeFruitsGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(PoultryMeat_MGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(BreadGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Cheese_PasturizedGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Oil_NabatiGram+Oil_AnimalGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Sabzi_AshGram+Sabzi_KhordanGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(MilkGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(SibzaminiGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(NutsGrams,Weight)] + + + + + + +MD[as.numeric(Decile)<2,weighted.mean(FinalPoor,Weight)] + + MD5<-MD[ProvinceCode!=11] + MD5<-MD5[,Group:=ifelse(FinalPoor==0 & FinalFoodPoor==0,"NoPoor", + ifelse(FinalPoor==1 & FinalFoodPoor==0,"OnlyFinalPoor", + ifelse(FinalPoor==0 & FinalFoodPoor==1,"OnlyFoodPoor","Both")))] + a<-ggplot(MD5,aes(x=HHEngle, fill=factor(Group))) + + geom_density(alpha=0.25)+ + xlim(0,1)+ylim(0,5)+ + ggtitle(year) + plot(a) + + + + MDD<-MD[,.(Population=sum(Weight*Size)), by=.(Decile,ProvinceName)][order(ProvinceName,Decile)] + ggplot(MDD, aes(fill=factor(Decile), y=Population, x=ProvinceName)) + + geom_bar(position="fill", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + + Decile1<-MD[as.numeric(Decile)<2,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile1Poors<-Decile1[,.(Decile1Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile1Poors, aes( y=Decile1Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + Decile2<-MD[as.numeric(Decile)<3,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile2Poors<-Decile2[,.(Decile2Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile2Poors, aes( y=Decile2Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + Decile5<-MD[as.numeric(Decile)>3,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile5Poors<-Decile5[,.(Decile5Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile5Poors, aes( y=Decile5Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + + + MD[,weighted.mean(FinalPoor,Weight),by=ProvinceCode][order(ProvinceCode)] +} + +MD[,sum(Weight),by=Decile][order(Decile)] +MD[,sum(Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,sum(Weight)] +MD[,sum(Weight*Size)] + +MD<-MD[,Total:=OriginalFoodExpenditure+Cigar_Exp+Cloth_Exp+ + HouseandEnergy_Exp+Furniture_Exp+Hygiene_Exp+ + Transportation_Exp+Communication_Exp+Communication_Exp+ + Amusement_Exp+Education_Exp+HotelRestaurant_Exp+ + Other_Exp+Durable_Exp] +m<-MD[,.(Total,Total_Exp_Month)] + +Share<-MD[,.(Foodshare=weighted.mean(OriginalFoodExpenditure/Total,Weight), + CigarShare=weighted.mean(Cigar_Exp/Total,Weight), + ClothShare=weighted.mean(Cloth_Exp/Total,Weight), + HouseandEnergyShare=weighted.mean(HouseandEnergy_Exp/Total,Weight), + FurnitureShare=weighted.mean(Furniture_Exp/Total,Weight), + HygieneShare=weighted.mean(Hygiene_Exp/Total,Weight), + TransportationShare=weighted.mean(Transportation_Exp/Total,Weight), + CommunicationShare=weighted.mean(Communication_Exp/Total,Weight), + AmusementShare=weighted.mean(Amusement_Exp/Total,Weight), + EducationShare=weighted.mean(Education_Exp/Total,Weight), + HotelShare=weighted.mean(HotelRestaurant_Exp/Total,Weight), + OtherShare=weighted.mean(Other_Exp/Total,Weight), + DurableShare=weighted.mean(Durable_Exp/Total,Weight)),by=Decile] + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/701-Total Food Calories (other).R b/R/Archive/June 2020 (removed code files)/701-Total Food Calories (other).R new file mode 100644 index 00000000..d4dca041 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/701-Total Food Calories (other).R @@ -0,0 +1,103 @@ +# 701-All coleries.R +# Builds the Food Groups data.table for households +# +# Copyright © 2018: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + +cat("\n\n================ FoodGroups =====================================\n") +TFoodGroups <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_FoodGroups)) +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + BigFData <- data.table(HHID=NA_integer_,FGrams=NA_real_,Expenditure=NA_real_, + FoodType=NA_character_,FoodKCalories=NA_real_,FoodTKCalories=NA_real_)[0] + for(i in 1:nrow(TFoodGroups)){ + cat(paste0(TFoodGroups[i,SheetName],", ")) + + ThisFoodTypeTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=TFoodGroups[i,SheetName])) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- ThisFoodTypeTable[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + if(year %in% 63:82){ + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Expenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + + TF[,Kilos:=as.numeric(Kilos)] + + load(file = "CaloriesTable.rda") + TF<-merge(TF,CalooriesTablee) + TF[is.na(TF)] <- 0 + TF[,FGrams:=(Kilos*1000)/30] + FData <- TF[,lapply(.SD,sum),by=HHID] + FData[, FoodType:=TFoodGroups[i,FoodType]] + FData[, FoodKCalories:=TFoodGroups[i,KCalories]*FGrams] + FData[, FoodTKCalories:=Calorie_per_gram*FGrams] + + BigFData <- rbind(BigFData,FData[,.(HHID,FGrams,Expenditure,FoodType,FoodKCalories,FoodTKCalories)]) + save(BigFData, file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + } + if(year >=83){ + pcols <- intersect(names(TF),c("HHID","Code","Grams","Kilos","Expenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,Expenditure:=as.numeric(Expenditure)] + + load(file = "CaloriesTable.rda") + TF<-merge(TF,CalooriesTablee) + TF[is.na(TF)] <- 0 + TF[,FGrams:=(Kilos*1000+Grams)/30] + FData <- TF[,lapply(.SD,sum),by=HHID] + FData[, FoodType:=TFoodGroups[i,FoodType]] + FData[, FoodKCalories:=TFoodGroups[i,KCalories]*FGrams] + FData[, FoodTKCalories:=Calorie_per_gram*FGrams] + + BigFData <- rbind(BigFData,FData[,.(HHID,FGrams,Expenditure,FoodType,FoodKCalories,FoodTKCalories)]) + } + } +} +save(BigFData, file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + HHBase <- merge(HHBase,HHI[,.(HHID,Size)],by="HHID") + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + FData <- BigFData[,.(FoodTKCalories=sum(FoodTKCalories), + FoodKCalories=sum(FoodKCalories)),by=HHID] + FData <- merge(HHBase[,.(HHID,Region,Size)], + FData,by = "HHID",all.x = TRUE) + + FData <- FData[FoodTKCalories<100000] # arbitrary removal of outliers + + save(FData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) +} + + +cat("\n\n==============Finish==============\nIt took ") +endtime <- proc.time() +cat((endtime-starttime)[3],"seconds.") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/702-Food initial groups (other).R b/R/Archive/June 2020 (removed code files)/702-Food initial groups (other).R new file mode 100644 index 00000000..473cc6d7 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/702-Food initial groups (other).R @@ -0,0 +1,337 @@ +# 702-Food initial groups.R +# +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +options(warn=-1) +################################################ +################ Morgh ######################## +################################################ +cat("\n\n================ Morgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Morgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","MorghPrice","MorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,MorghExpenditure:=as.numeric(MorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,MorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TF[,MorghPrice:=MorghPrice*3] + TF[,MorghExpenditure:=MorghPrice*MorghKG] + MorghData <- TF[,lapply(.SD,sum),by=HHID] + save(MorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Morghs.rda")) +} + +################################################ +################ Cow ######################## +################################################ +cat("\n\n================ Cow =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Cow)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","CowPrice","CowExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,CowExpenditure:=as.numeric(CowExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,CowKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TF[,CowPrice:=CowPrice*3] + TF[,CowExpenditure:=CowPrice*CowKG] + CowData <- TF[,lapply(.SD,sum),by=HHID] + save(CowData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Cows.rda")) +} + +################################################ +################ Sheep ######################## +################################################ +cat("\n\n================ Sheep =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Sheep)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","SheepPrice","SheepExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,SheepExpenditure:=as.numeric(SheepExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,SheepKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TF[,SheepPrice:=SheepPrice*3] + TF[,SheepExpenditure:=SheepPrice*SheepKG] + SheepData <- TF[,lapply(.SD,sum),by=HHID] + save(SheepData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Sheeps.rda")) +} +################################################ +################ Berenj ######################## +################################################ +cat("\n\n================ Berenj =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_BerenjF)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","BerenjPrice","BerenjFExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,BerenjFExpenditure:=as.numeric(BerenjFExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,BerenjKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TF[,BerenjPrice:=BerenjPrice*3] + TF[,BerenjExpenditure:=BerenjPrice*BerenjKG] + BerenjData <- TF[,lapply(.SD,sum),by=HHID] + save(BerenjData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Berenjs.rda")) +} +################################################ +################ Roghan ######################## +################################################ +cat("\n\n================ Roghan =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Roghan)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","RoghanPrice","RoghanExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,RoghanExpenditure:=as.numeric(RoghanExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,RoghanKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TF[,RoghanPrice:=RoghanPrice*3] + TF[,RoghanExpenditure:=RoghanPrice*RoghanKG] + RoghanData <- TF[,lapply(.SD,sum),by=HHID] + save(RoghanData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Roghans.rda")) +} +################################################ +################ Tokhmemorgh ######################## +################################################ +cat("\n\n================ Tokhmemorgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Tokhmemorgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","TokhmemorghPrice","TokhmemorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,TokhmemorghExpenditure:=as.numeric(TokhmemorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,TokhmemorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TF[,TokhmemorghPrice:=TokhmemorghPrice*3] + TF[,TokhmemorghExpenditure:=TokhmemorghPrice*TokhmemorghKG] + TokhmemorghData <- TF[,lapply(.SD,sum),by=HHID] + save(TokhmemorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Tokhmemorghs.rda")) +} + +################################################ +####### Load Additional Information ############# +################################################ +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +HHBase<-HHBase[,.(HHID,Region,ProvinceCode,Month)] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) +SMD<-MD[,.(HHID,Decile,Weight,Size,EqSizeOECD, + Total_Exp_Month,Total_Exp_Month_Per,TFoodExpenditure, + Total_Exp_Month_nondurable,Total_Exp_Month_Per_nondurable)] + +################################################ +####### Merge Information ############# +################################################ + +Total<-merge(HHBase,SMD,all = TRUE) +Total<-merge(Total,MorghData,all = TRUE) +Total<-merge(Total,SheepData,all = TRUE) +Total<-merge(Total,CowData,all = TRUE) +Total<-merge(Total,BerenjData,all = TRUE) +Total<-merge(Total,RoghanData,all = TRUE) +Total<-merge(Total,TokhmemorghData,all = TRUE) + +for (col in c("MorghExpenditure","MorghKG", + "SheepExpenditure","SheepKG", + "CowExpenditure","CowKG", + "BerenjFExpenditure","BerenjKG", + "RoghanExpenditure","RoghanKG", + "TokhmemorghExpenditure","TokhmemorghKG")) Total[is.na(get(col)), (col) := 0] +#"MorghPrice","SheepPrice","CowPrice", +#"BerenjPrice","RoghanPrice","TokhmemorghPrice" + +Total<-Total[Decile %in% 1:10] + +#Price Indexes +load(file="Index_Dataset.rda") +Total<-merge(Total,Index_Dataset,by=c("Month"),all.x=TRUE) + +Berenj_Azar97<-185.5 +Morgh_Azar97<-151.3 +Cow_Azar97<-188.5 +Sheep_Azar97<-182.1 +Roghan_Azar97<-159.9 +Tokhmemorgh_Azar97<-218.5 + + +########################################## +w <- c("BerenjFExpenditure","CowExpenditure", + "SheepExpenditure","MorghExpenditure", + "RoghanExpenditure","TokhmemorghExpenditure") + +Total[, Added_Food_Exp_Month := Reduce(`+`, .SD), .SDcols=w] +Added_Food<-Total[,.(HHID,Added_Food_Exp_Month)] + +save(Added_Food,file=paste0(Settings$HEISProcessedPath,"Y",year,"Added_Food.rda")) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/703-Bundle 2100 (other).R b/R/Archive/June 2020 (removed code files)/703-Bundle 2100 (other).R new file mode 100644 index 00000000..66220a3d --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/703-Bundle 2100 (other).R @@ -0,0 +1,106 @@ +# 703-Bundle 2100 +# Builds the Food Groups data.table for households +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +library(spatstat) + +cat("\n\n================ FoodGroups =====================================\n") +year<-97 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + MetaData <- read_excel("C:/IRHEIS/Data/MetaData.xlsx", sheet = "FoodGroupTables") + MetaData<-as.data.table(MetaData) + MetaData<-MetaData[,SheetName:=NULL] + FoodNames<-MetaData + save(FoodNames,file ="FoodNames.rda" ) + load(file = "FoodNames.rda") + + Base2<-merge(BigFData,FData,by="HHID") + + Base2<-merge(Base2,MD[,.(HHID,NewArea,NewArea_Name,ProvinceCode,cluster3,Decile, + FinalFoodPoor,FinalPoor,Weight,EqSizeOECD,EqSizeCalory)],by="HHID") + + Base<-Base2 + #Base<-Base2[FinalFoodPoor==1] + Base<-Base[,FGrams_Per:=FGrams/EqSizeCalory] + Base<-Base[,FoodKCalories_Per:=FoodKCaloriesHH/EqSizeCalory] + Base<-Base[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] + Base<-Base[,Coef:=FoodKCalories_Per/Settings$KCaloryNeed_Adult] + + Base<-Base[,FoodKCalories_PerNew:=FoodKCalories_Per/Coef] + Base<-Base[,FGrams_PerNew:=FGrams_Per/Coef] + BaseX <- Base[,.(FoodKCalories2=mean(FoodKCalories_PerNew), + FoodKCalories3=mean(FoodKCalories_Per), + FoodProtein2=mean(FoodProtein_Per), + Weight=mean(Weight), + ProvinceCode=mean(ProvinceCode)),by=HHID] + +# BaseX1<-Base[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight), + # cluster3=mean(cluster3)), + # by=.(ProvinceCode,FoodType)] + + BaseX1<-Base[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight), + cluster3=mean(cluster3)), + by=.(FoodType)] + + BaseX1<-BaseX1[,N2:=max(N),by=.(ProvinceCode)] + BaseX1<-BaseX1[,Average_New:=N*Average_Consumption/N2] + BaseM<-BaseX1[,.(ProvinceCode,N,N2,FoodType,Average_New)] + BaseM2<-BaseM[FoodType=="Berenj"] + BaseM<-BaseM[,.(ProvinceCode,FoodType,N,Average_New)] + BaseM<-merge(BaseM,FoodNames) + BaseM<-BaseM[,Average_Protein:=Average_New*Protein] + BaseM<-BaseM[order(ProvinceCode,FoodType)] + write.csv(BaseM,file="BaseM.csv") + + BaseP<-BaseM[,.(Total_Protein=sum(Average_Protein)), + by=.(ProvinceCode)] + + BaseX<-BaseX[,Region:=as.integer(str_sub(HHID,1,1))] + BaseX[,weighted.mean(FoodProtein2,Weight)] + BaseX[,weighted.mean(FoodProtein2,Weight),by=.(Region,ProvinceCode)] + + + BaseXUrban<-BaseX[Region==1] + BaseXRural<-BaseX[Region==2] + plot(FoodKCalories3~FoodProtein2,data=BaseXUrban) + BaseXRural<-BaseXRural[FoodProtein2<700] + + smoothScatter(BaseXRural$FoodKCalories3~BaseXRural$FoodProtein2) + +#Base2<-Base[FinalPoor==0,.(.N,Average_Consumption=weighted.mean(FGrams_Per,Weight), +# cluster3=mean(cluster3)),by=.(ProvinceCode,FoodType)] + +# Base3<-MD[PEngel>0.6 & FinalPoor==1] + +# Base4<-MD[FinalPoor==0,.(.N,cluster3=mean(cluster3)),by=.(ProvinceCode)] + +# Base[FoodType=="Goosht" & FinalPoor==1 ,weighted.mean(FGrams_Per,Weight,na.rm = TRUE),by=.(ProvinceCode)] + + Base3<-Base2[FinalPoor==1] + Base3<-Base3[,FGrams_Per:=FGrams/EqSizeCalory] + Base3<-Base3[,FoodKCalories_Per:=FoodKCaloriesHH/EqSizeCalory] + BaseX3<-Base3[,.(.N,Average_Consumption=weighted.mean(FGrams_Per,Weight), + cluster3=mean(cluster3)), + by=.(ProvinceCode,FoodType)] + BaseX3<-BaseX3[,N2:=max(N),by=.(ProvinceCode)] + BaseX3<-BaseX3[,Average_New:=N*Average_Consumption/N2] + BaseM3<-BaseX3[,.(ProvinceCode,N,N2,FoodType,Average_New)] + BaseM3<-BaseM3[order(ProvinceCode,FoodType)] + write.csv(BaseM3,file="BaseM3.csv") + +cat("\n\n==============Finish==============\nIt took ") +endtime <- proc.time() +cat((endtime-starttime)[3],"seconds.") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/900-Calculation of CV- Benzin.R b/R/Archive/June 2020 (removed code files)/900-Calculation of CV- Benzin.R new file mode 100644 index 00000000..4a7d1f1e --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/900-Calculation of CV- Benzin.R @@ -0,0 +1,304 @@ +# Calculation of CV- Benzin +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +options(warn=-1) + +################################################ +################ Benzin ######################## +################################################ +cat("\n\n================ Benzin =====================================\n") + +BenzinTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Benzin)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- BenzinTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Benzin_Exp")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,BenzinExpenditure:=as.numeric(BenzinExpenditure)] + } + + + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + BenzinData <- TF[,lapply(.SD,sum),by=HHID] + save(BenzinData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Benzins.rda")) +} + +################################################ +################ Transportation ######################## +################################################ +cat("\n\n================ Transportation =====================================\n") + +TransportationTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Transportation)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- TransportationTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Transportation_Exp")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,TransportationExpenditure:=as.numeric(TransportationExpenditure)] + } + + + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + TransportationData <- TF[,lapply(.SD,sum),by=HHID] + save(TransportationData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Transportations.rda")) +} +################################################ +################ Other Exp ######################## +################################################ +cat("\n\n================ Other =====================================\n") + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-MD[,.(HHID,HIndivNo,Region,ProvinceCode,NewArea_Name,Total_Exp_Month,Total_Exp_Month_nondurable, + Size,EqSizeOECD,Weight, Decile,HSex,HEduLevel, + HEduYears,HActivityState)] + save(MD, file = paste0(Settings$HEISProcessedPath,"Y",year,"MD.rda")) +} +MD[,weighted.mean(Total_Exp_Month,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(Size,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[NewArea_Name=="Sh_Tehran" ,weighted.mean(Total_Exp_Month,Weight),by=.(Decile)][order(Decile)] +MD[NewArea_Name=="Sh_Tehran" ,weighted.mean(Size,Weight),by=.(Decile)][order(Decile)] + +cat("\n\n================ Merge =====================================\n") +################################################ +####### Merge Information ############# +################################################ + +Total<-merge(MD,BenzinData,all = TRUE) +Total<-merge(Total,TransportationData,all = TRUE) +Total[is.na(Total)] <- 0 +Total<-Total[,Other_Exp:=Total_Exp_Month-Benzin_Exp-Transportation_Exp] +Total<-Total[,Benzin_Exp_Add:=ifelse(Benzin_Exp<600000,0,Benzin_Exp-600000)] + +Total<-Total[Decile %in% 1:10] + +#Price Indexes +load(file="Index98.rda") +Total<-merge(Total,Index98,by="ProvinceCode") +Total[,Decile:=as.numeric(Decile)] +Total<-Total[,Yaraneh2:=ifelse(Size==1,550000, + ifelse(Size==2,1030000, + ifelse(Size==3,1380000, + ifelse(Size==4,1720000,2050000))))] +Total<-Total[,Yaraneh:=ifelse(Decile>7,0,Yaraneh2)] +#Total<-Total[,Yaraneh:=Yaraneh2] +Total[is.na(Total)] <- 0 +#Total<-Total[Benzin_Exp==0] +############New Prices########### +Total[,BenzinP1:=Benzin_Exp] +Total[,TransportationP1:=Transportation_Exp*Mehr98/137] +Total[,Other_ExpP1:=Other_Exp*Mehr98/137] + +#Total[,BenzinP2:=ifelse(Benzin_Exp<600000, Benzin_Exp*1.5,Benzin_Exp*3)] +Total[,BenzinP2:=ifelse(Benzin_Exp<600000, Benzin_Exp*1.5, + 600000*1.5+Benzin_Exp_Add*3)] +Total[,TransportationP2:=TransportationP1*3] +Total[,Other_ExpP2:=Other_ExpP1*1.02] + +################################################ +################ CV ################# +################################################ + +Total<-Total[,BenzinShare:=Benzin_Exp/Total_Exp_Month] +Total<-Total[,TransportationShare:=Transportation_Exp/Total_Exp_Month] +Total<-Total[,Other_ExpShare:=Other_Exp/Total_Exp_Month] + + +Total<-Total[,CV:=Total_Exp_Month*(1-((BenzinP2/BenzinP1)^BenzinShare)*((TransportationP2/TransportationP1)^TransportationShare)* + ((Other_ExpP2/Other_ExpP1)^Other_ExpShare))] + +Total<-Total[,Loss:=ifelse(Yaraneh0.01,2, + ifelse(Loss_Share<0.03 & Loss_Share>0.02,3, + ifelse(Loss_Share<0.04 & Loss_Share>0.03,4,5))))] + +Loss2[,sum(HIndivNo*Weight),by=Loss_Section][order(Loss_Section)] +Loss2[,sum(HIndivNo*Weight*Size),by=Loss_Section][order(Loss_Section)] +Loss2[,sum(HIndivNo),by=Loss_Section][order(Loss_Section)] + + +Win<-Total[Loss==0] +Win<-Win[,Win_Amount:=Yaraneh-abs(CV)] +Win[,weighted.mean(Win_Amount,Weight,na.rm = TRUE)] +Win[,weighted.mean(Win_Amount,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] + +Win[,weighted.mean(Win_Amount/Total_Exp_Month,Weight,na.rm = TRUE)] +Win[,weighted.mean(Win_Amount/Total_Exp_Month,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Win[,Win_Share:=Win_Amount/Total_Exp_Month] +Win2<-Win[Win_Share<0.3] + +Win[,Win_Section:=ifelse(Win_Share<0.025,1, + ifelse(Win_Share<0.05 & Win_Share>0.025,2, + ifelse(Win_Share<0.075 & Win_Share>0.05,3, + ifelse(Win_Share<0.1 & Win_Share>0.075,4, + ifelse(Win_Share<0.125 & Win_Share>0.1,5, + ifelse(Win_Share<0.15 & Win_Share>0.125,6, + ifelse(Win_Share<0.175 & Win_Share>0.15,7, + ifelse(Win_Share<0.2 & Win_Share>0.175,8, + ifelse(Win_Share<0.225 & Win_Share>0.2,9, + ifelse(Win_Share<0.25 & Win_Share>0.225,10, + ifelse(Win_Share<0.275 & Win_Share>0.25,11,12)))))))))))] + +Win[,sum(HIndivNo*Weight),by=Win_Section][order(Win_Section)] +Win[,sum(HIndivNo*Weight*Size),by=Win_Section][order(Win_Section)] +Win[,sum(HIndivNo),by=Win_Section][order(Win_Section)] +Win[,sum(HIndivNo*Weight),by=.(Win_Section,Decile)][order(Decile,Win_Section)] + +plot(density(Win2$Win_Share),weights =Win2$Weight) +sm.density.compare(Win2$Win_Share, Win2$Decile) + +Win[,weighted.mean(Total_Exp_Month,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] + +plot(density(Loss2$Loss_Share),weights =Loss2$Weight) +#lines(density(Loss$Age),weights =Loss$Weight) +sm.density.compare(Loss$Loss_Amount, Loss$Decile) + +Pop<-Loss[,sum(Weight)] +Loss[,sum(Weight),by=.(ProvinceCode)] +Loss[,sum(Weight),by=.(HSex)] +Loss[,sum(Weight),by=.(HEduLevel)][order(HEduLevel)] +Loss[,sum(Weight),by=.(Size)][order(Size)] +Loss[,sum(Weight),by=.(HActivityState)] +Loss[,sum(Weight),by=.(taxicode)] + +Pop2<-Total[,sum(Weight)] +Total[,sum(Weight),by=.(ProvinceCode)] +Total[,sum(Weight),by=.(HSex)] +Total[,sum(Weight),by=.(HEduLevel)][order(HEduLevel)] +Total[,sum(Weight),by=.(Size)][order(Size)] +Total[,sum(Weight),by=.(HActivityState)] +Total[,sum(Weight),by=.(taxicode)] + + +Loss[,sum(Weight*Size),by=.(ProvinceCode)] +Loss[,sum(Weight*Size),by=.(HSex)] +Loss[,sum(Weight*Size),by=.(HEduLevel)][order(HEduLevel)] +Loss[,sum(Weight*Size),by=.(Size)] +Loss[,sum(Weight*Size),by=.(HActivityState)] +Loss[,sum(Weight*Size),by=.(taxicode)] + +Loss[,sum(HIndivNo),by=.(ProvinceCode)] +Loss[,sum(HIndivNo),by=.(HSex)] +Loss[,sum(HIndivNo),by=.(HEduLevel)][order(HEduLevel)] +Loss[,sum(HIndivNo),by=.(Size)] +Loss[,sum(HIndivNo),by=.(HActivityState)] +Loss[,sum(HIndivNo),by=.(taxicode)] + + +LossR1<-Loss[Region=="Rural" & Decile==1,.(HHID,Size,Total_Exp_Month,CV, + Yaraneh,Loss_Amount)] + +LossU1<-Loss[Region=="Urban" & Decile==1,.(HHID,Size,Total_Exp_Month,CV, + Yaraneh,Loss_Amount)] + +#write.csv(Loss2,file = "loss2.csv") +#write.csv(Loss,file = "loss.csv") +#write.csv(Win,file = "Win.csv") +#write.csv(Win2,file = "Win2.csv") + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/Copy of 174.R b/R/Archive/June 2020 (removed code files)/Copy of 174.R new file mode 100644 index 00000000..12390e0e --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Copy of 174.R @@ -0,0 +1,270 @@ +#Copy of 174.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + + Compare1<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + ###Nominal- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable)] #Deciling in Urban- Rural(Nominal) + #SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Nominal- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + + # C<-SMD[,.(.N,Max=max(Total_Exp_Month_Per_nondurable), + # Min=min(Total_Exp_Month_Per_nondurable), + # Mean=mean(Total_Exp_Month_Per_nondurable)), + # by=.(Region,NewArea,NewArea_Name,Decile)] + + # D<-SMD[,.(.N,Mean=weighted.mean(Durable_Exp/Size,Weight)), + # by=.(Region,NewArea,NewArea_Name,Decile)] + + # B<-SMD[,.(.N,Mean=mean(MetrPrice)), + # by=.(Region,NewArea,NewArea_Name)] + + # write.csv(B,file = "B.csv") + # write.csv(C,file = "C.csv") + # write.csv(D,file = "D.csv") + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + SMDIterationPoor[,sum(ThisIterationPoor),by=.(Region,NewArea_Name)][order(Region,NewArea_Name)] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + cat("\n",sum(SMD[ProvinceCode==2,.N])) + #cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + } + + + + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea_Name,Region)] + MD[,sum(Weight*Size), by=.(Decile,Region)][order(Region,Decile)] + MD[,sum(Weight*Size), by=.(Decile_Nominal,Region)][order(Region,Decile_Nominal)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + ###Total + MDG1<-MD[,.(Population=sum(Weight*Size)), by=.(Decile,Region)][order(Region,Decile)] + ggplot(MDG1, aes(fill=Region, y=Population, x=Decile)) + + geom_bar(position="stack", stat="identity") + + ###Tehran + MDG2<-MD[,Tehran:=ifelse(NewArea==2301,1,0)] + MDG2<-MDG2[,.(Population=sum(Weight*Size)), by=.(Decile,Tehran)][order(Tehran,Decile)] + ggplot(MDG2, aes(fill=factor(Tehran), y=Population, x=Decile)) + + geom_bar(position="stack", stat="identity") + + ###Sistan + MDG3<-MD[,Sistan:=ifelse(ProvinceCode==11,1,0)] + MDG3<-MDG3[,.(Population=sum(Weight*Size)), by=.(Decile,Sistan)][order(Sistan,Decile)] + ggplot(MDG3, aes(fill=factor(Sistan), y=Population, x=Decile)) + + geom_bar(position="stack", stat="identity") + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + MD<-merge(MD,HHHouseProperties) + + FractioninData<-MD[,.(Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + tenure=weighted.mean(tenure=="OwnLandandBuilding",Weight), + HActivityState=weighted.mean(HActivityState=="Employed",Weight), + Car=weighted.mean(car=="True",Weight)), + by=c("Percentile_Nominal")] + + #write.csv(FractioninData,file = "FractioninData.csv") + + Deciles<-MD[,.(HHID,Decile,Decile_Nominal,Region,ProvinceCode,HIndivNo,Weight)] + Deciles<-Deciles[,diff:=as.numeric(Decile)-as.numeric(Decile_Nominal)] + decileTest<-Deciles[,.(Positive=weighted.mean(diff>0,Weight), + Zero=weighted.mean(diff==0,Weight), + Minus=weighted.mean(diff<0,Weight)),by=ProvinceCode] + + decile7<-Deciles[,.(before=weighted.mean(as.numeric(Decile_Nominal)>7,Weight), + after=weighted.mean(as.numeric(Decile)>7,Weight)),by=ProvinceCode] + + ###Exp + x2<-FractioninData[,.(Total_Exp_Month_Per_nondurable,Percentile_Nominal)] + x2$Percentile_Nominal <- factor(x2$Percentile_Nominal, levels = x2$Percentile_Nominal[order(x2$Percentile_Nominal)]) + ggplot(x2, aes(x = x2$Percentile_Nominal, y = x2$Total_Exp_Month_Per_nondurable)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + + ###Tenure + x2<-FractioninData[,.(tenure,Percentile_Nominal)] + x2$Percentile_Nominal <- factor(x2$Percentile_Nominal, levels = x2$Percentile_Nominal[order(x2$tenure)]) + ggplot(x2, aes(x = x2$Percentile_Nominal, y = x2$tenure)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + + ###HActivity + x2<-FractioninData[,.(HActivityState,Percentile_Nominal)] + x2$Percentile_Nominal <- factor(x2$Percentile_Nominal, levels = x2$Percentile_Nominal[order(x2$HActivityState)]) + ggplot(x2, aes(x = x2$Percentile_Nominal, y = x2$HActivityState)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + ###Car + x2<-FractioninData[,.(Car,Percentile_Nominal)] + x2$Percentile_Nominal <- factor(x2$Percentile_Nominal, levels = x2$Percentile_Nominal[order(x2$Car)]) + ggplot(x2, aes(x = x2$Percentile_Nominal, y = x2$Car)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + decile7<-Deciles[,.(before=weighted.mean(as.numeric(Decile_Nominal)>7,Weight), + after=weighted.mean(as.numeric(Decile)>7,Weight)),by=ProvinceCode] + + Deciles<-MD[,.(HHID,Decile,Decile_Nominal,Region,ProvinceCode,HIndivNo,Weight, + Total_Exp_Month,Total_Exp_Month_nondurable)] + Deciles<-Deciles[,diff:=as.numeric(Decile)-as.numeric(Decile_Nominal)] + decileTest<-Deciles[,.(Positive=weighted.mean(diff>0,Weight), + Zero=weighted.mean(diff==0,Weight), + Minus=weighted.mean(diff<0,Weight)),by=ProvinceCode] + + SMD[,TIncome:=sum(Total_Exp_Month_Per_nondurable*Weight)] + Share<-SMD[,Income_Share:=Total_Exp_Month_Per_nondurable/TIncome] + Share<-Share[,.(Income_Share=sum(Income_Share*Weight)),by=Decile] + save(Share,file = "Share.rda") + + Deciles<-Deciles[,Low:=ifelse(as.numeric(Decile)<4,1,0)] + Low<-Deciles[,.(weighted.mean(Low,Weight)),by=ProvinceCode] + save(Low,file = "Low.rda") + + + Deciles<-Deciles[,L5:=ifelse(Total_Exp_Month_nondurable<5000000,1,0)] + L5<-Deciles[,.(sum(L5*Weight)),by=ProvinceCode] + save(L5,file = "L5.rda") + + #UnEmp<-MD[,UnEmp:=ifelse(HActivityState=="Unemployed" & HAge<41,1,0)] + #UnEmp<-UnEmp[,.(weighted.mean(UnEmp,Weight)),by=ProvinceCode] +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/DecileMean.R b/R/Archive/June 2020 (removed code files)/DecileMean.R new file mode 100644 index 00000000..98ea52a2 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/DecileMean.R @@ -0,0 +1,66 @@ +#Decile Mean +#Calculate Mean Expendirure of Different Deciles +#Zahra Shahidi +#2020 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(writexl) +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + + MD<-MD[order(Decile)] + dovom<-MD[Decile==1 | Decile==2] + nohom<-MD[Decile==9 | Decile==10] + p1<-MD[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight*Size),by=c("Decile")] + p2<-MD[,weighted.mean(Total_Exp_Month_Per,Weight*Size),by=c("Decile")] + p3<-MD[,weighted.mean(Year),by=c("Decile")] + p4<- MD[,.N,by=Decile] + p5<-MD[,weighted.mean(Weight),by=c("Decile")] + p6<-dovom[,weighted.mean(Total_Exp_Month_Per,Weight*Size)] + p7<-nohom[,weighted.mean(Total_Exp_Month_Per,Weight*Size)] + nesbat1<-p7/p6 + y<-p2[Decile==1] + yekom<-y$V1 + d<-p2[Decile==10] + dahom<-d$V1 + nesbst<-dahom/yekom + P<-as.data.table(cbind(p1$Decile,p1$V1,p2$V1,p3$V1,nesbst,nesbat1,p5$V1)) + names(P)<-c("Decile","Total_Exp_Month_Per_nondurable","Total_Exp_Month_Per","Year","nesbat","nesbat1","Weight") + + save(P, file=paste0(Settings$HEISProcessedPath,"Y",year,"poor.rda")) + d<-MD[,weighted.mean(Total_Exp_Month,Weight*Size)] + + if (year==90){PANEL<-P + }else{ + PANEL<-rbind(P,PANEL) + } +} +save(PANEL, file=paste0(Settings$HEISProcessedPath,"Decile")) +PANEL<-PANEL[,Decile:=as.factor(Decile)] +PANEL<-PANEL[,Year:=as.factor(Year)] + +PANEL<-as.data.table(PANEL) +write_xlsx(PANEL,path="PANEL1.xlsx",col_names=T) +ggplot(data=PANEL,aes(x=Year, y=fp, group=Decile, colour=Decile))+geom_line() + +ggplot(data=PANEL,aes(x=Year, y=poverty_R, group=Decile, colour=Decile))+geom_line() + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Demo2.R b/R/Archive/June 2020 (removed code files)/Demo2.R new file mode 100644 index 00000000..008f3b1b --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Demo2.R @@ -0,0 +1,1924 @@ +# 113-Demo2.R +# Builds the demographics information data.table for households +# +# Copyright © 2016: Majid Einian +# Licence: GPL-3 +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Demo =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) +library(plotrix) +library(Hmisc) +library(haven) +library(sm) +library(gridExtra) +#P1<-P1[,`:=`(Dimension=.N),by=.(HHID)] + +P1Cols <- data.table(read_excel(Settings$MetaDataFilePath, Settings$MDS_P1Cols)) + +EduCodesA <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_A)) +EduCodesB <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_B)) +EduCodesC <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_C)) +EduCodesD <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_D)) + +years <- Settings$startyear:Settings$endyear + +for(year in years){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) + if(year<=84){ + EduCodeT <- EduCodesA + }else if(year %in% 85:92){ + EduCodeT <- EduCodesB + }else if(year %in% 93:96){ + EduCodeT <- EduCodesC + }else{ + EduCodeT <- EduCodesD + } + + P1 <- rbind(Tables[[paste0("R",year,"P1")]],Tables[[paste0("U",year,"P1")]]) + nP1 <- names(P1) + if(length(which(sapply(P1, is.character)))>0){ + P1c <- P1[,lapply(.SD,iconv,"WINDOWS-1252","UTF-8"), .SDcols=sapply(P1,is.character)] + P1nc <- P1[,!sapply(P1,is.character),with=FALSE] + P1 <- cbind(P1c,P1nc)[,nP1,with=FALSE] + } + + a <- unlist(P1Cols[P1Cols$Year==year,]) + ind <- which(!is.na(a))[-1] + setnames(P1,a[ind],names(a[ind])) + + f <- function(x){as.numeric(str_trim(x))} + P1 <- P1[, lapply(.SD, f)] # , .SDcols=which(sapply(P1, class)=="character")] + + + P1[is.na(Age),Age:=0L] + P1[,Relationship :=factor(Relationship, levels=1:9, + labels=c("Head","Spouse","Child","Child-in-Law", + "Grand-Child","Parent","Sister/Brother", + "Other Family","Non-Family"))] + + P1[,Sex := factor(Sex, levels=1:2, + labels=c("Male","Female"))] + + P1<-P1[Sex=="Male" | Sex=="Female"] + + if(year %in% 63:64){ + P1[,Literate:=LitState<=3] + }else if(year %in% 65:68){ + P1[,Literate:=LitState<=2] + }else{ + P1[,Literate:=Literate==1] + } + + if(year %in% 63:68){ + P1[,Student:=LitState==1] + }else{ + P1[,Student:=Student==1] + } + + P1[,EduYears:=EduCodeT$yoe[match(EduCode,EduCodeT$Code)]] + P1$EduYears[P1$Literate==FALSE] <- 0 + P1[,EduLevel:=cut(EduYears,breaks=c(-1,0,6,12,22), + labels= c("Illiterate","Primary","Secondary","University"))] + P1[,EduLevel0:=cut(EduYears,breaks=c(-1,0,6,9,11,12,22), + labels= c("Illiterate","Elementary","Middle","High","Pre","University"))] + + P1[,ActivityState:=as.numeric(substr(as.character(ActivityState),1,1))] + + if(year %in% 63:64){ + P1[,ActivityState:=factor(ActivityState,1:9, + c("Employed","Seasonal Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Unemployed Not Looking for Job", + "Other","Former Member"))] + levels(P1$ActivityState) <- c(c("Employed","Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Other", + "Other","Other")) + }else if(year %in% 65:68){ + P1[,ActivityState:=factor(ActivityState,1:8, + c("Employed","Seasonal Unemployed","Income without Work", + "Unemployed","Student","Housekeeper", + "Other","Former Member"))] + levels(P1$ActivityState) <- c(c("Employed","Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Other", + "Other")) + }else{ + P1[,ActivityState:=factor(ActivityState,1:6, + c("Employed","Unemployed","Income without Work", + "Student","Housekeeper","Other"))] + } + + if(year %in% 66:68){ + P1[,MarritalState:=factor(NA,1:4, + c("Married","Widowed","Divorced","Bachelor"))] + }else{ + P1[,MarritalState:=factor(MarritalState,1:4, + c("Married","Widowed","Divorced","Bachelor"))] + } + + + + + P <- copy(P1) + + P <- P[order(P$HHID),] + + + B <- P[IndivNo==1] + setnames(B,2:length(B),sapply(X=names(B)[2:length(B)],function(X){paste("H",X,sep="")})) + B <- B[order(HHID,HIndivNo)] + B <- B[!duplicated(B$HHID),] + + B[,HEmployed:=HActivityState=="Employed"] + B[,HUnemployed:=HActivityState=="Unemployed"] + B[,HIncomeWOWork:=HActivityState=="Income without Work"] + + B <- B[!is.na(HActivityState) & !is.na(HLiterate)] + + + P[,Size:=1] + P[,Kids:=ifelse(Relationship=="Child",1,0)] + P[,NKids:=ifelse(Age<15,1,0)] + P[,NInfants:=ifelse(Age<=2,1,0)] + P[,NSmallKids:=ifelse(Age>=3 & Age<=13, 1, 0)] + + P[,NElementary:= ifelse(EduLevel0=="Elementary" & Student==TRUE,1,0)] + P[,NMiddle:= ifelse(EduLevel0=="Middle" & Student==TRUE,1,0)] + P[,NHigh:= ifelse(EduLevel0=="High" & Student==TRUE,1,0)] + P[,NPre:= ifelse(EduLevel0=="Pre" & Student==TRUE,1,0)] + + #Age Groups 1 + P[, NAge0B :=ifelse( Age== 0 &Sex== "Male" ,1,0)] + P[, NAge1B :=ifelse( Age== 1 &Sex== "Male" ,1,0)] + P[, NAge2B :=ifelse( Age== 2 &Sex== "Male" ,1,0)] + P[, NAge3B :=ifelse( Age== 3 &Sex== "Male" ,1,0)] + P[, NAge4B :=ifelse( Age== 4 &Sex== "Male" ,1,0)] + P[, NAge5B :=ifelse( Age== 5 &Sex== "Male" ,1,0)] + P[, NAge6B :=ifelse( Age== 6 &Sex== "Male" ,1,0)] + P[, NAge7B :=ifelse( Age== 7 &Sex== "Male" ,1,0)] + P[, NAge8B :=ifelse( Age== 8 &Sex== "Male" ,1,0)] + P[, NAge9B :=ifelse( Age== 9 &Sex== "Male" ,1,0)] + P[, NAge10B :=ifelse( Age== 10 &Sex== "Male" ,1,0)] + P[, NAge11B :=ifelse( Age== 11 &Sex== "Male" ,1,0)] + P[, NAge12B :=ifelse( Age== 12 &Sex== "Male" ,1,0)] + P[, NAge13B :=ifelse( Age== 13 &Sex== "Male" ,1,0)] + P[, NAge14B :=ifelse( Age== 14 &Sex== "Male" ,1,0)] + P[, NAge15B :=ifelse( Age== 15 &Sex== "Male" ,1,0)] + P[, NAge16B :=ifelse( Age== 16 &Sex== "Male" ,1,0)] + P[, NAge17B :=ifelse( Age== 17 &Sex== "Male" ,1,0)] + P[, NAge18B :=ifelse( Age== 18 &Sex== "Male" ,1,0)] + P[, NAge19B :=ifelse( Age== 19 &Sex== "Male" ,1,0)] + P[, NAge20B :=ifelse( Age== 20 &Sex== "Male" ,1,0)] + P[, NAge21B :=ifelse( Age== 21 &Sex== "Male" ,1,0)] + P[, NAge22B :=ifelse( Age== 22 &Sex== "Male" ,1,0)] + P[, NAge23B :=ifelse( Age== 23 &Sex== "Male" ,1,0)] + P[, NAge24B :=ifelse( Age== 24 &Sex== "Male" ,1,0)] + P[, NAge25B :=ifelse( Age== 25 &Sex== "Male" ,1,0)] + P[, NAge26B :=ifelse( Age== 26 &Sex== "Male" ,1,0)] + P[, NAge27B :=ifelse( Age== 27 &Sex== "Male" ,1,0)] + P[, NAge28B :=ifelse( Age== 28 &Sex== "Male" ,1,0)] + P[, NAge29B :=ifelse( Age== 29 &Sex== "Male" ,1,0)] + P[, NAge30B :=ifelse( Age== 30 &Sex== "Male" ,1,0)] + P[, NAge31B :=ifelse( Age== 31 &Sex== "Male" ,1,0)] + P[, NAge32B :=ifelse( Age== 32 &Sex== "Male" ,1,0)] + P[, NAge33B :=ifelse( Age== 33 &Sex== "Male" ,1,0)] + P[, NAge34B :=ifelse( Age== 34 &Sex== "Male" ,1,0)] + P[, NAge35B :=ifelse( Age== 35 &Sex== "Male" ,1,0)] + P[, NAge36B :=ifelse( Age== 36 &Sex== "Male" ,1,0)] + P[, NAge37B :=ifelse( Age== 37 &Sex== "Male" ,1,0)] + P[, NAge38B :=ifelse( Age== 38 &Sex== "Male" ,1,0)] + P[, NAge39B :=ifelse( Age== 39 &Sex== "Male" ,1,0)] + P[, NAge40B :=ifelse( Age== 40 &Sex== "Male" ,1,0)] + P[, NAge41B :=ifelse( Age== 41 &Sex== "Male" ,1,0)] + P[, NAge42B :=ifelse( Age== 42 &Sex== "Male" ,1,0)] + P[, NAge43B :=ifelse( Age== 43 &Sex== "Male" ,1,0)] + P[, NAge44B :=ifelse( Age== 44 &Sex== "Male" ,1,0)] + P[, NAge45B :=ifelse( Age== 45 &Sex== "Male" ,1,0)] + P[, NAge46B :=ifelse( Age== 46 &Sex== "Male" ,1,0)] + P[, NAge47B :=ifelse( Age== 47 &Sex== "Male" ,1,0)] + P[, NAge48B :=ifelse( Age== 48 &Sex== "Male" ,1,0)] + P[, NAge49B :=ifelse( Age== 49 &Sex== "Male" ,1,0)] + P[, NAge50B :=ifelse( Age== 50 &Sex== "Male" ,1,0)] + P[, NAge51B :=ifelse( Age== 51 &Sex== "Male" ,1,0)] + P[, NAge52B :=ifelse( Age== 52 &Sex== "Male" ,1,0)] + P[, NAge53B :=ifelse( Age== 53 &Sex== "Male" ,1,0)] + P[, NAge54B :=ifelse( Age== 54 &Sex== "Male" ,1,0)] + P[, NAge55B :=ifelse( Age== 55 &Sex== "Male" ,1,0)] + P[, NAge56B :=ifelse( Age== 56 &Sex== "Male" ,1,0)] + P[, NAge57B :=ifelse( Age== 57 &Sex== "Male" ,1,0)] + P[, NAge58B :=ifelse( Age== 58 &Sex== "Male" ,1,0)] + P[, NAge59B :=ifelse( Age== 59 &Sex== "Male" ,1,0)] + P[, NAge60B :=ifelse( Age== 60 &Sex== "Male" ,1,0)] + P[, NAge61B :=ifelse( Age== 61 &Sex== "Male" ,1,0)] + P[, NAge62B :=ifelse( Age== 62 &Sex== "Male" ,1,0)] + P[, NAge63B :=ifelse( Age== 63 &Sex== "Male" ,1,0)] + P[, NAge64B :=ifelse( Age== 64 &Sex== "Male" ,1,0)] + P[, NAge65B :=ifelse( Age== 65 &Sex== "Male" ,1,0)] + P[, NAge66B :=ifelse( Age== 66 &Sex== "Male" ,1,0)] + P[, NAge67B :=ifelse( Age== 67 &Sex== "Male" ,1,0)] + P[, NAge68B :=ifelse( Age== 68 &Sex== "Male" ,1,0)] + P[, NAge69B :=ifelse( Age== 69 &Sex== "Male" ,1,0)] + P[, NAge70B :=ifelse( Age== 70 &Sex== "Male" ,1,0)] + P[, NAge71B :=ifelse( Age== 71 &Sex== "Male" ,1,0)] + P[, NAge72B :=ifelse( Age== 72 &Sex== "Male" ,1,0)] + P[, NAge73B :=ifelse( Age== 73 &Sex== "Male" ,1,0)] + P[, NAge74B :=ifelse( Age== 74 &Sex== "Male" ,1,0)] + P[, NAge75B :=ifelse( Age== 75 &Sex== "Male" ,1,0)] + P[, NAge76B :=ifelse( Age== 76 &Sex== "Male" ,1,0)] + P[, NAge77B :=ifelse( Age== 77 &Sex== "Male" ,1,0)] + P[, NAge78B :=ifelse( Age== 78 &Sex== "Male" ,1,0)] + P[, NAge79B :=ifelse( Age== 79 &Sex== "Male" ,1,0)] + P[, NAge80B :=ifelse( Age== 80 &Sex== "Male" ,1,0)] + P[, NAge81B :=ifelse( Age== 81 &Sex== "Male" ,1,0)] + P[, NAge82B :=ifelse( Age== 82 &Sex== "Male" ,1,0)] + P[, NAge83B :=ifelse( Age== 83 &Sex== "Male" ,1,0)] + P[, NAge84B :=ifelse( Age== 84 &Sex== "Male" ,1,0)] + P[, NAge85B :=ifelse( Age== 85 &Sex== "Male" ,1,0)] + P[, NAge86B :=ifelse( Age== 86 &Sex== "Male" ,1,0)] + P[, NAge87B :=ifelse( Age== 87 &Sex== "Male" ,1,0)] + P[, NAge88B :=ifelse( Age== 88 &Sex== "Male" ,1,0)] + P[, NAge89B :=ifelse( Age== 89 &Sex== "Male" ,1,0)] + P[, NAge90B :=ifelse( Age== 90 &Sex== "Male" ,1,0)] + P[, NAge91B :=ifelse( Age== 91 &Sex== "Male" ,1,0)] + P[, NAge92B :=ifelse( Age== 92 &Sex== "Male" ,1,0)] + P[, NAge93B :=ifelse( Age== 93 &Sex== "Male" ,1,0)] + P[, NAge94B :=ifelse( Age== 94 &Sex== "Male" ,1,0)] + P[, NAge95B :=ifelse( Age== 95 &Sex== "Male" ,1,0)] + P[, NAge96B :=ifelse( Age== 96 &Sex== "Male" ,1,0)] + P[, NAge97B :=ifelse( Age== 97 &Sex== "Male" ,1,0)] + P[, NAge98B :=ifelse( Age== 98 &Sex== "Male" ,1,0)] + P[, NAge99B :=ifelse( Age== 99 &Sex== "Male" ,1,0)] + P[, NAge0G :=ifelse( Age== 0 &Sex== "Female" ,1,0)] + P[, NAge1G :=ifelse( Age== 1 &Sex== "Female" ,1,0)] + P[, NAge2G :=ifelse( Age== 2 &Sex== "Female" ,1,0)] + P[, NAge3G :=ifelse( Age== 3 &Sex== "Female" ,1,0)] + P[, NAge4G :=ifelse( Age== 4 &Sex== "Female" ,1,0)] + P[, NAge5G :=ifelse( Age== 5 &Sex== "Female" ,1,0)] + P[, NAge6G :=ifelse( Age== 6 &Sex== "Female" ,1,0)] + P[, NAge7G :=ifelse( Age== 7 &Sex== "Female" ,1,0)] + P[, NAge8G :=ifelse( Age== 8 &Sex== "Female" ,1,0)] + P[, NAge9G :=ifelse( Age== 9 &Sex== "Female" ,1,0)] + P[, NAge10G :=ifelse( Age== 10 &Sex== "Female" ,1,0)] + P[, NAge11G :=ifelse( Age== 11 &Sex== "Female" ,1,0)] + P[, NAge12G :=ifelse( Age== 12 &Sex== "Female" ,1,0)] + P[, NAge13G :=ifelse( Age== 13 &Sex== "Female" ,1,0)] + P[, NAge14G :=ifelse( Age== 14 &Sex== "Female" ,1,0)] + P[, NAge15G :=ifelse( Age== 15 &Sex== "Female" ,1,0)] + P[, NAge16G :=ifelse( Age== 16 &Sex== "Female" ,1,0)] + P[, NAge17G :=ifelse( Age== 17 &Sex== "Female" ,1,0)] + P[, NAge18G :=ifelse( Age== 18 &Sex== "Female" ,1,0)] + P[, NAge19G :=ifelse( Age== 19 &Sex== "Female" ,1,0)] + P[, NAge20G :=ifelse( Age== 20 &Sex== "Female" ,1,0)] + P[, NAge21G :=ifelse( Age== 21 &Sex== "Female" ,1,0)] + P[, NAge22G :=ifelse( Age== 22 &Sex== "Female" ,1,0)] + P[, NAge23G :=ifelse( Age== 23 &Sex== "Female" ,1,0)] + P[, NAge24G :=ifelse( Age== 24 &Sex== "Female" ,1,0)] + P[, NAge25G :=ifelse( Age== 25 &Sex== "Female" ,1,0)] + P[, NAge26G :=ifelse( Age== 26 &Sex== "Female" ,1,0)] + P[, NAge27G :=ifelse( Age== 27 &Sex== "Female" ,1,0)] + P[, NAge28G :=ifelse( Age== 28 &Sex== "Female" ,1,0)] + P[, NAge29G :=ifelse( Age== 29 &Sex== "Female" ,1,0)] + P[, NAge30G :=ifelse( Age== 30 &Sex== "Female" ,1,0)] + P[, NAge31G :=ifelse( Age== 31 &Sex== "Female" ,1,0)] + P[, NAge32G :=ifelse( Age== 32 &Sex== "Female" ,1,0)] + P[, NAge33G :=ifelse( Age== 33 &Sex== "Female" ,1,0)] + P[, NAge34G :=ifelse( Age== 34 &Sex== "Female" ,1,0)] + P[, NAge35G :=ifelse( Age== 35 &Sex== "Female" ,1,0)] + P[, NAge36G :=ifelse( Age== 36 &Sex== "Female" ,1,0)] + P[, NAge37G :=ifelse( Age== 37 &Sex== "Female" ,1,0)] + P[, NAge38G :=ifelse( Age== 38 &Sex== "Female" ,1,0)] + P[, NAge39G :=ifelse( Age== 39 &Sex== "Female" ,1,0)] + P[, NAge40G :=ifelse( Age== 40 &Sex== "Female" ,1,0)] + P[, NAge41G :=ifelse( Age== 41 &Sex== "Female" ,1,0)] + P[, NAge42G :=ifelse( Age== 42 &Sex== "Female" ,1,0)] + P[, NAge43G :=ifelse( Age== 43 &Sex== "Female" ,1,0)] + P[, NAge44G :=ifelse( Age== 44 &Sex== "Female" ,1,0)] + P[, NAge45G :=ifelse( Age== 45 &Sex== "Female" ,1,0)] + P[, NAge46G :=ifelse( Age== 46 &Sex== "Female" ,1,0)] + P[, NAge47G :=ifelse( Age== 47 &Sex== "Female" ,1,0)] + P[, NAge48G :=ifelse( Age== 48 &Sex== "Female" ,1,0)] + P[, NAge49G :=ifelse( Age== 49 &Sex== "Female" ,1,0)] + P[, NAge50G :=ifelse( Age== 50 &Sex== "Female" ,1,0)] + P[, NAge51G :=ifelse( Age== 51 &Sex== "Female" ,1,0)] + P[, NAge52G :=ifelse( Age== 52 &Sex== "Female" ,1,0)] + P[, NAge53G :=ifelse( Age== 53 &Sex== "Female" ,1,0)] + P[, NAge54G :=ifelse( Age== 54 &Sex== "Female" ,1,0)] + P[, NAge55G :=ifelse( Age== 55 &Sex== "Female" ,1,0)] + P[, NAge56G :=ifelse( Age== 56 &Sex== "Female" ,1,0)] + P[, NAge57G :=ifelse( Age== 57 &Sex== "Female" ,1,0)] + P[, NAge58G :=ifelse( Age== 58 &Sex== "Female" ,1,0)] + P[, NAge59G :=ifelse( Age== 59 &Sex== "Female" ,1,0)] + P[, NAge60G :=ifelse( Age== 60 &Sex== "Female" ,1,0)] + P[, NAge61G :=ifelse( Age== 61 &Sex== "Female" ,1,0)] + P[, NAge62G :=ifelse( Age== 62 &Sex== "Female" ,1,0)] + P[, NAge63G :=ifelse( Age== 63 &Sex== "Female" ,1,0)] + P[, NAge64G :=ifelse( Age== 64 &Sex== "Female" ,1,0)] + P[, NAge65G :=ifelse( Age== 65 &Sex== "Female" ,1,0)] + P[, NAge66G :=ifelse( Age== 66 &Sex== "Female" ,1,0)] + P[, NAge67G :=ifelse( Age== 67 &Sex== "Female" ,1,0)] + P[, NAge68G :=ifelse( Age== 68 &Sex== "Female" ,1,0)] + P[, NAge69G :=ifelse( Age== 69 &Sex== "Female" ,1,0)] + P[, NAge70G :=ifelse( Age== 70 &Sex== "Female" ,1,0)] + P[, NAge71G :=ifelse( Age== 71 &Sex== "Female" ,1,0)] + P[, NAge72G :=ifelse( Age== 72 &Sex== "Female" ,1,0)] + P[, NAge73G :=ifelse( Age== 73 &Sex== "Female" ,1,0)] + P[, NAge74G :=ifelse( Age== 74 &Sex== "Female" ,1,0)] + P[, NAge75G :=ifelse( Age== 75 &Sex== "Female" ,1,0)] + P[, NAge76G :=ifelse( Age== 76 &Sex== "Female" ,1,0)] + P[, NAge77G :=ifelse( Age== 77 &Sex== "Female" ,1,0)] + P[, NAge78G :=ifelse( Age== 78 &Sex== "Female" ,1,0)] + P[, NAge79G :=ifelse( Age== 79 &Sex== "Female" ,1,0)] + P[, NAge80G :=ifelse( Age== 80 &Sex== "Female" ,1,0)] + P[, NAge81G :=ifelse( Age== 81 &Sex== "Female" ,1,0)] + P[, NAge82G :=ifelse( Age== 82 &Sex== "Female" ,1,0)] + P[, NAge83G :=ifelse( Age== 83 &Sex== "Female" ,1,0)] + P[, NAge84G :=ifelse( Age== 84 &Sex== "Female" ,1,0)] + P[, NAge85G :=ifelse( Age== 85 &Sex== "Female" ,1,0)] + P[, NAge86G :=ifelse( Age== 86 &Sex== "Female" ,1,0)] + P[, NAge87G :=ifelse( Age== 87 &Sex== "Female" ,1,0)] + P[, NAge88G :=ifelse( Age== 88 &Sex== "Female" ,1,0)] + P[, NAge89G :=ifelse( Age== 89 &Sex== "Female" ,1,0)] + P[, NAge90G :=ifelse( Age== 90 &Sex== "Female" ,1,0)] + P[, NAge91G :=ifelse( Age== 91 &Sex== "Female" ,1,0)] + P[, NAge92G :=ifelse( Age== 92 &Sex== "Female" ,1,0)] + P[, NAge93G :=ifelse( Age== 93 &Sex== "Female" ,1,0)] + P[, NAge94G :=ifelse( Age== 94 &Sex== "Female" ,1,0)] + P[, NAge95G :=ifelse( Age== 95 &Sex== "Female" ,1,0)] + P[, NAge96G :=ifelse( Age== 96 &Sex== "Female" ,1,0)] + P[, NAge97G :=ifelse( Age== 97 &Sex== "Female" ,1,0)] + P[, NAge98G :=ifelse( Age== 98 &Sex== "Female" ,1,0)] + P[, NAge99G :=ifelse( Age== 99 &Sex== "Female" ,1,0)] + + + + #Age Groups 2 + P[, NAge0_A_B :=ifelse( Age== 0 &Sex== "Male" ,1,0)] + P[, NAge1_A_B :=ifelse( Age== 1 &Sex== "Male" ,1,0)] + P[, NAge2_A_B :=ifelse( Age== 2 &Sex== "Male" ,1,0)] + P[, NAge3_A_B :=ifelse( Age== 3 &Sex== "Male" ,1,0)] + P[, NAge4_A_B :=ifelse( Age== 4 &Sex== "Male" ,1,0)] + P[, NAge5_A_B :=ifelse( Age== 5 &Sex== "Male" ,1,0)] + P[, NAge6_A_B :=ifelse( Age== 6 &Sex== "Male" ,1,0)] + P[, NAge7_A_B :=ifelse( Age== 7 &Sex== "Male" ,1,0)] + P[, NAge8_A_B :=ifelse( Age== 8 &Sex== "Male" ,1,0)] + P[, NAge9_A_B :=ifelse( Age== 9 &Sex== "Male" ,1,0)] + P[, NAge10_A_B :=ifelse( Age== 10 &Sex== "Male" ,1,0)] + P[, NAge11_A_B :=ifelse( Age== 11 &Sex== "Male" ,1,0)] + P[, NAge12_A_B :=ifelse( Age== 12 &Sex== "Male" ,1,0)] + P[, NAge13_A_B :=ifelse( Age== 13 &Sex== "Male" ,1,0)] + P[, NAge14_A_B :=ifelse( Age== 14 &Sex== "Male" ,1,0)] + P[, NAge15_A_B :=ifelse( Age== 15 &Sex== "Male" ,1,0)] + P[, NAge16_A_B :=ifelse( Age== 16 &Sex== "Male" ,1,0)] + P[, NAge17_A_B :=ifelse( Age== 17 &Sex== "Male" ,1,0)] + P[, NAge18_A_B :=ifelse( Age== 18 &Sex== "Male" ,1,0)] + P[, NAge19_A_B :=ifelse( Age== 19 &Sex== "Male" ,1,0)] + P[, NAge20_A_B :=ifelse( Age== 20 &Sex== "Male" ,1,0)] + P[, NAge21_A_B :=ifelse( Age== 21 &Sex== "Male" ,1,0)] + P[, NAge22_A_B :=ifelse( Age== 22 &Sex== "Male" ,1,0)] + P[, NAge23_A_B :=ifelse( Age== 23 &Sex== "Male" ,1,0)] + P[, NAge24_A_B :=ifelse( Age== 24 &Sex== "Male" ,1,0)] + P[, NAge25_A_B :=ifelse( Age== 25 &Sex== "Male" ,1,0)] + P[, NAge26_A_B :=ifelse( Age== 26 &Sex== "Male" ,1,0)] + P[, NAge27_A_B :=ifelse( Age== 27 &Sex== "Male" ,1,0)] + P[, NAge28_A_B :=ifelse( Age== 28 &Sex== "Male" ,1,0)] + P[, NAge29_A_B :=ifelse( Age== 29 &Sex== "Male" ,1,0)] + P[, NAge30_A_B :=ifelse( Age== 30 &Sex== "Male" ,1,0)] + P[, NAge31_A_B :=ifelse( Age== 31 &Sex== "Male" ,1,0)] + P[, NAge32_A_B :=ifelse( Age== 32 &Sex== "Male" ,1,0)] + P[, NAge33_A_B :=ifelse( Age== 33 &Sex== "Male" ,1,0)] + P[, NAge34_A_B :=ifelse( Age== 34 &Sex== "Male" ,1,0)] + P[, NAge35_A_B :=ifelse( Age== 35 &Sex== "Male" ,1,0)] + P[, NAge36_A_B :=ifelse( Age== 36 &Sex== "Male" ,1,0)] + P[, NAge37_A_B :=ifelse( Age== 37 &Sex== "Male" ,1,0)] + P[, NAge38_A_B :=ifelse( Age== 38 &Sex== "Male" ,1,0)] + P[, NAge39_A_B :=ifelse( Age== 39 &Sex== "Male" ,1,0)] + P[, NAge40_A_B :=ifelse( Age== 40 &Sex== "Male" ,1,0)] + P[, NAge41_A_B :=ifelse( Age== 41 &Sex== "Male" ,1,0)] + P[, NAge42_A_B :=ifelse( Age== 42 &Sex== "Male" ,1,0)] + P[, NAge43_A_B :=ifelse( Age== 43 &Sex== "Male" ,1,0)] + P[, NAge44_A_B :=ifelse( Age== 44 &Sex== "Male" ,1,0)] + P[, NAge45_A_B :=ifelse( Age== 45 &Sex== "Male" ,1,0)] + P[, NAge46_A_B :=ifelse( Age== 46 &Sex== "Male" ,1,0)] + P[, NAge47_A_B :=ifelse( Age== 47 &Sex== "Male" ,1,0)] + P[, NAge48_A_B :=ifelse( Age== 48 &Sex== "Male" ,1,0)] + P[, NAge49_A_B :=ifelse( Age== 49 &Sex== "Male" ,1,0)] + P[, NAge50_A_B :=ifelse( Age== 50 &Sex== "Male" ,1,0)] + P[, NAge51_A_B :=ifelse( Age== 51 &Sex== "Male" ,1,0)] + P[, NAge52_A_B :=ifelse( Age== 52 &Sex== "Male" ,1,0)] + P[, NAge53_A_B :=ifelse( Age== 53 &Sex== "Male" ,1,0)] + P[, NAge54_A_B :=ifelse( Age== 54 &Sex== "Male" ,1,0)] + P[, NAge55_A_B :=ifelse( Age== 55 &Sex== "Male" ,1,0)] + P[, NAge56_A_B :=ifelse( Age== 56 &Sex== "Male" ,1,0)] + P[, NAge57_A_B :=ifelse( Age== 57 &Sex== "Male" ,1,0)] + P[, NAge58_A_B :=ifelse( Age== 58 &Sex== "Male" ,1,0)] + P[, NAge59_A_B :=ifelse( Age== 59 &Sex== "Male" ,1,0)] + P[, NAge60_A_B :=ifelse( Age== 60 &Sex== "Male" ,1,0)] + P[, NAge61_A_B :=ifelse( Age== 61 &Sex== "Male" ,1,0)] + P[, NAge62_A_B :=ifelse( Age== 62 &Sex== "Male" ,1,0)] + P[, NAge63_A_B :=ifelse( Age== 63 &Sex== "Male" ,1,0)] + P[, NAge64_A_B :=ifelse( Age== 64 &Sex== "Male" ,1,0)] + P[, NAge65_A_B :=ifelse( Age== 65 &Sex== "Male" ,1,0)] + P[, NAge66_A_B :=ifelse( Age== 66 &Sex== "Male" ,1,0)] + P[, NAge67_A_B :=ifelse( Age== 67 &Sex== "Male" ,1,0)] + P[, NAge68_A_B :=ifelse( Age== 68 &Sex== "Male" ,1,0)] + P[, NAge69_A_B :=ifelse( Age== 69 &Sex== "Male" ,1,0)] + P[, NAge70_A_B :=ifelse( Age== 70 &Sex== "Male" ,1,0)] + P[, NAge71_A_B :=ifelse( Age== 71 &Sex== "Male" ,1,0)] + P[, NAge72_A_B :=ifelse( Age== 72 &Sex== "Male" ,1,0)] + P[, NAge73_A_B :=ifelse( Age== 73 &Sex== "Male" ,1,0)] + P[, NAge74_A_B :=ifelse( Age== 74 &Sex== "Male" ,1,0)] + P[, NAge75_A_B :=ifelse( Age== 75 &Sex== "Male" ,1,0)] + P[, NAge76_A_B :=ifelse( Age== 76 &Sex== "Male" ,1,0)] + P[, NAge77_A_B :=ifelse( Age== 77 &Sex== "Male" ,1,0)] + P[, NAge78_A_B :=ifelse( Age== 78 &Sex== "Male" ,1,0)] + P[, NAge79_A_B :=ifelse( Age== 79 &Sex== "Male" ,1,0)] + P[, NAge80_A_B :=ifelse( Age== 80 &Sex== "Male" ,1,0)] + P[, NAge81_A_B :=ifelse( Age== 81 &Sex== "Male" ,1,0)] + P[, NAge82_A_B :=ifelse( Age== 82 &Sex== "Male" ,1,0)] + P[, NAge83_A_B :=ifelse( Age== 83 &Sex== "Male" ,1,0)] + P[, NAge84_A_B :=ifelse( Age== 84 &Sex== "Male" ,1,0)] + P[, NAge85_A_B :=ifelse( Age== 85 &Sex== "Male" ,1,0)] + P[, NAge86_A_B :=ifelse( Age== 86 &Sex== "Male" ,1,0)] + P[, NAge87_A_B :=ifelse( Age== 87 &Sex== "Male" ,1,0)] + P[, NAge88_A_B :=ifelse( Age== 88 &Sex== "Male" ,1,0)] + P[, NAge89_A_B :=ifelse( Age== 89 &Sex== "Male" ,1,0)] + P[, NAge90_A_B :=ifelse( Age== 90 &Sex== "Male" ,1,0)] + P[, NAge91_A_B :=ifelse( Age== 91 &Sex== "Male" ,1,0)] + P[, NAge92_A_B :=ifelse( Age== 92 &Sex== "Male" ,1,0)] + P[, NAge93_A_B :=ifelse( Age== 93 &Sex== "Male" ,1,0)] + P[, NAge94_A_B :=ifelse( Age== 94 &Sex== "Male" ,1,0)] + P[, NAge95_A_B :=ifelse( Age== 95 &Sex== "Male" ,1,0)] + P[, NAge96_A_B :=ifelse( Age== 96 &Sex== "Male" ,1,0)] + P[, NAge97_A_B :=ifelse( Age== 97 &Sex== "Male" ,1,0)] + P[, NAge98_A_B :=ifelse( Age== 98 &Sex== "Male" ,1,0)] + P[, NAge99_A_B :=ifelse( Age== 99 &Sex== "Male" ,1,0)] + P[, NAge0_A_G :=ifelse( Age== 0 &Sex== "Female" ,1,0)] + P[, NAge1_A_G :=ifelse( Age== 1 &Sex== "Female" ,1,0)] + P[, NAge2_A_G :=ifelse( Age== 2 &Sex== "Female" ,1,0)] + P[, NAge3_A_G :=ifelse( Age== 3 &Sex== "Female" ,1,0)] + P[, NAge4_A_G :=ifelse( Age== 4 &Sex== "Female" ,1,0)] + P[, NAge5_A_G :=ifelse( Age== 5 &Sex== "Female" ,1,0)] + P[, NAge6_A_G :=ifelse( Age== 6 &Sex== "Female" ,1,0)] + P[, NAge7_A_G :=ifelse( Age== 7 &Sex== "Female" ,1,0)] + P[, NAge8_A_G :=ifelse( Age== 8 &Sex== "Female" ,1,0)] + P[, NAge9_A_G :=ifelse( Age== 9 &Sex== "Female" ,1,0)] + P[, NAge10_A_G :=ifelse( Age== 10 &Sex== "Female" ,1,0)] + P[, NAge11_A_G :=ifelse( Age== 11 &Sex== "Female" ,1,0)] + P[, NAge12_A_G :=ifelse( Age== 12 &Sex== "Female" ,1,0)] + P[, NAge13_A_G :=ifelse( Age== 13 &Sex== "Female" ,1,0)] + P[, NAge14_A_G :=ifelse( Age== 14 &Sex== "Female" ,1,0)] + P[, NAge15_A_G :=ifelse( Age== 15 &Sex== "Female" ,1,0)] + P[, NAge16_A_G :=ifelse( Age== 16 &Sex== "Female" ,1,0)] + P[, NAge17_A_G :=ifelse( Age== 17 &Sex== "Female" ,1,0)] + P[, NAge18_A_G :=ifelse( Age== 18 &Sex== "Female" ,1,0)] + P[, NAge19_A_G :=ifelse( Age== 19 &Sex== "Female" ,1,0)] + P[, NAge20_A_G :=ifelse( Age== 20 &Sex== "Female" ,1,0)] + P[, NAge21_A_G :=ifelse( Age== 21 &Sex== "Female" ,1,0)] + P[, NAge22_A_G :=ifelse( Age== 22 &Sex== "Female" ,1,0)] + P[, NAge23_A_G :=ifelse( Age== 23 &Sex== "Female" ,1,0)] + P[, NAge24_A_G :=ifelse( Age== 24 &Sex== "Female" ,1,0)] + P[, NAge25_A_G :=ifelse( Age== 25 &Sex== "Female" ,1,0)] + P[, NAge26_A_G :=ifelse( Age== 26 &Sex== "Female" ,1,0)] + P[, NAge27_A_G :=ifelse( Age== 27 &Sex== "Female" ,1,0)] + P[, NAge28_A_G :=ifelse( Age== 28 &Sex== "Female" ,1,0)] + P[, NAge29_A_G :=ifelse( Age== 29 &Sex== "Female" ,1,0)] + P[, NAge30_A_G :=ifelse( Age== 30 &Sex== "Female" ,1,0)] + P[, NAge31_A_G :=ifelse( Age== 31 &Sex== "Female" ,1,0)] + P[, NAge32_A_G :=ifelse( Age== 32 &Sex== "Female" ,1,0)] + P[, NAge33_A_G :=ifelse( Age== 33 &Sex== "Female" ,1,0)] + P[, NAge34_A_G :=ifelse( Age== 34 &Sex== "Female" ,1,0)] + P[, NAge35_A_G :=ifelse( Age== 35 &Sex== "Female" ,1,0)] + P[, NAge36_A_G :=ifelse( Age== 36 &Sex== "Female" ,1,0)] + P[, NAge37_A_G :=ifelse( Age== 37 &Sex== "Female" ,1,0)] + P[, NAge38_A_G :=ifelse( Age== 38 &Sex== "Female" ,1,0)] + P[, NAge39_A_G :=ifelse( Age== 39 &Sex== "Female" ,1,0)] + P[, NAge40_A_G :=ifelse( Age== 40 &Sex== "Female" ,1,0)] + P[, NAge41_A_G :=ifelse( Age== 41 &Sex== "Female" ,1,0)] + P[, NAge42_A_G :=ifelse( Age== 42 &Sex== "Female" ,1,0)] + P[, NAge43_A_G :=ifelse( Age== 43 &Sex== "Female" ,1,0)] + P[, NAge44_A_G :=ifelse( Age== 44 &Sex== "Female" ,1,0)] + P[, NAge45_A_G :=ifelse( Age== 45 &Sex== "Female" ,1,0)] + P[, NAge46_A_G :=ifelse( Age== 46 &Sex== "Female" ,1,0)] + P[, NAge47_A_G :=ifelse( Age== 47 &Sex== "Female" ,1,0)] + P[, NAge48_A_G :=ifelse( Age== 48 &Sex== "Female" ,1,0)] + P[, NAge49_A_G :=ifelse( Age== 49 &Sex== "Female" ,1,0)] + P[, NAge50_A_G :=ifelse( Age== 50 &Sex== "Female" ,1,0)] + P[, NAge51_A_G :=ifelse( Age== 51 &Sex== "Female" ,1,0)] + P[, NAge52_A_G :=ifelse( Age== 52 &Sex== "Female" ,1,0)] + P[, NAge53_A_G :=ifelse( Age== 53 &Sex== "Female" ,1,0)] + P[, NAge54_A_G :=ifelse( Age== 54 &Sex== "Female" ,1,0)] + P[, NAge55_A_G :=ifelse( Age== 55 &Sex== "Female" ,1,0)] + P[, NAge56_A_G :=ifelse( Age== 56 &Sex== "Female" ,1,0)] + P[, NAge57_A_G :=ifelse( Age== 57 &Sex== "Female" ,1,0)] + P[, NAge58_A_G :=ifelse( Age== 58 &Sex== "Female" ,1,0)] + P[, NAge59_A_G :=ifelse( Age== 59 &Sex== "Female" ,1,0)] + P[, NAge60_A_G :=ifelse( Age== 60 &Sex== "Female" ,1,0)] + P[, NAge61_A_G :=ifelse( Age== 61 &Sex== "Female" ,1,0)] + P[, NAge62_A_G :=ifelse( Age== 62 &Sex== "Female" ,1,0)] + P[, NAge63_A_G :=ifelse( Age== 63 &Sex== "Female" ,1,0)] + P[, NAge64_A_G :=ifelse( Age== 64 &Sex== "Female" ,1,0)] + P[, NAge65_A_G :=ifelse( Age== 65 &Sex== "Female" ,1,0)] + P[, NAge66_A_G :=ifelse( Age== 66 &Sex== "Female" ,1,0)] + P[, NAge67_A_G :=ifelse( Age== 67 &Sex== "Female" ,1,0)] + P[, NAge68_A_G :=ifelse( Age== 68 &Sex== "Female" ,1,0)] + P[, NAge69_A_G :=ifelse( Age== 69 &Sex== "Female" ,1,0)] + P[, NAge70_A_G :=ifelse( Age== 70 &Sex== "Female" ,1,0)] + P[, NAge71_A_G :=ifelse( Age== 71 &Sex== "Female" ,1,0)] + P[, NAge72_A_G :=ifelse( Age== 72 &Sex== "Female" ,1,0)] + P[, NAge73_A_G :=ifelse( Age== 73 &Sex== "Female" ,1,0)] + P[, NAge74_A_G :=ifelse( Age== 74 &Sex== "Female" ,1,0)] + P[, NAge75_A_G :=ifelse( Age== 75 &Sex== "Female" ,1,0)] + P[, NAge76_A_G :=ifelse( Age== 76 &Sex== "Female" ,1,0)] + P[, NAge77_A_G :=ifelse( Age== 77 &Sex== "Female" ,1,0)] + P[, NAge78_A_G :=ifelse( Age== 78 &Sex== "Female" ,1,0)] + P[, NAge79_A_G :=ifelse( Age== 79 &Sex== "Female" ,1,0)] + P[, NAge80_A_G :=ifelse( Age== 80 &Sex== "Female" ,1,0)] + P[, NAge81_A_G :=ifelse( Age== 81 &Sex== "Female" ,1,0)] + P[, NAge82_A_G :=ifelse( Age== 82 &Sex== "Female" ,1,0)] + P[, NAge83_A_G :=ifelse( Age== 83 &Sex== "Female" ,1,0)] + P[, NAge84_A_G :=ifelse( Age== 84 &Sex== "Female" ,1,0)] + P[, NAge85_A_G :=ifelse( Age== 85 &Sex== "Female" ,1,0)] + P[, NAge86_A_G :=ifelse( Age== 86 &Sex== "Female" ,1,0)] + P[, NAge87_A_G :=ifelse( Age== 87 &Sex== "Female" ,1,0)] + P[, NAge88_A_G :=ifelse( Age== 88 &Sex== "Female" ,1,0)] + P[, NAge89_A_G :=ifelse( Age== 89 &Sex== "Female" ,1,0)] + P[, NAge90_A_G :=ifelse( Age== 90 &Sex== "Female" ,1,0)] + P[, NAge91_A_G :=ifelse( Age== 91 &Sex== "Female" ,1,0)] + P[, NAge92_A_G :=ifelse( Age== 92 &Sex== "Female" ,1,0)] + P[, NAge93_A_G :=ifelse( Age== 93 &Sex== "Female" ,1,0)] + P[, NAge94_A_G :=ifelse( Age== 94 &Sex== "Female" ,1,0)] + P[, NAge95_A_G :=ifelse( Age== 95 &Sex== "Female" ,1,0)] + P[, NAge96_A_G :=ifelse( Age== 96 &Sex== "Female" ,1,0)] + P[, NAge97_A_G :=ifelse( Age== 97 &Sex== "Female" ,1,0)] + P[, NAge98_A_G :=ifelse( Age== 98 &Sex== "Female" ,1,0)] + P[, NAge99_A_G :=ifelse( Age== 99 &Sex== "Female" ,1,0)] + + P<- merge(P,lactating,by="HHID",all.x = TRUE) + P[,Calorie_Need1:=NAge1B*Settings$KCaloryNeed_B1+ + NAge2B*Settings$KCaloryNeed_B2+ + NAge3B*Settings$KCaloryNeed_B3+ + NAge4B*Settings$KCaloryNeed_B4+ + NAge5B*Settings$KCaloryNeed_B5+ + NAge6B*Settings$KCaloryNeed_B6+ + NAge7B*Settings$KCaloryNeed_B7+ + NAge8B*Settings$KCaloryNeed_B8+ + NAge9B*Settings$KCaloryNeed_B9+ + NAge10B*Settings$KCaloryNeed_B10+ + NAge1G*Settings$KCaloryNeed_G1+ + NAge2G*Settings$KCaloryNeed_G2+ + NAge3G*Settings$KCaloryNeed_G3+ + NAge4G*Settings$KCaloryNeed_G4+ + NAge5G*Settings$KCaloryNeed_G5+ + NAge6G*Settings$KCaloryNeed_G6+ + NAge7G*Settings$KCaloryNeed_G7+ + NAge8G*Settings$KCaloryNeed_G8+ + NAge9G*Settings$KCaloryNeed_G9+ + NAge10G*Settings$KCaloryNeed_G10+ + lactating*(Settings$KCaloryNeed_lactating)] + + + P[,Calorie_Need2:=NAge1_A_B*Settings$KCaloryNeed_A_B1+ + NAge2_A_B*Settings$KCaloryNeed_A_B2+ + NAge3_A_B*Settings$KCaloryNeed_A_B3+ + NAge4_A_B*Settings$KCaloryNeed_A_B4+ + NAge5_A_B*Settings$KCaloryNeed_A_B5+ + NAge6_A_B*Settings$KCaloryNeed_A_B6+ + NAge7_A_B*Settings$KCaloryNeed_A_B7+ + NAge8_A_B*Settings$KCaloryNeed_A_B8+ + NAge9_A_B*Settings$KCaloryNeed_A_B9+ + NAge1_A_G*Settings$KCaloryNeed_A_G1+ + NAge2_A_G*Settings$KCaloryNeed_A_G2+ + NAge3_A_G*Settings$KCaloryNeed_A_G3+ + NAge4_A_G*Settings$KCaloryNeed_A_G4+ + NAge5_A_G*Settings$KCaloryNeed_A_G5+ + NAge6_A_G*Settings$KCaloryNeed_A_G6+ + NAge7_A_G*Settings$KCaloryNeed_A_G7+ + NAge8_A_G*Settings$KCaloryNeed_A_G8+ + NAge9_A_G*Settings$KCaloryNeed_A_G9+ + lactating*(Settings$KCaloryNeed_lactating)] + + + + PSum <- P[,lapply(.SD,sum,na.rm=TRUE), + .SDcols=c("Size","NKids","NInfants","NSmallKids","NElementary", + "NMiddle","NHigh","NPre","NAge0B", + "NAge1B", + "NAge2B", + "NAge3B", + "NAge4B", + "NAge5B", + "NAge6B", + "NAge7B", + "NAge8B", + "NAge9B", + "NAge10B", + "NAge11B", + "NAge12B", + "NAge13B", + "NAge14B", + "NAge15B", + "NAge16B", + "NAge17B", + "NAge18B", + "NAge19B", + "NAge20B", + "NAge21B", + "NAge22B", + "NAge23B", + "NAge24B", + "NAge25B", + "NAge26B", + "NAge27B", + "NAge28B", + "NAge29B", + "NAge30B", + "NAge31B", + "NAge32B", + "NAge33B", + "NAge34B", + "NAge35B", + "NAge36B", + "NAge37B", + "NAge38B", + "NAge39B", + "NAge40B", + "NAge41B", + "NAge42B", + "NAge43B", + "NAge44B", + "NAge45B", + "NAge46B", + "NAge47B", + "NAge48B", + "NAge49B", + "NAge50B", + "NAge51B", + "NAge52B", + "NAge53B", + "NAge54B", + "NAge55B", + "NAge56B", + "NAge57B", + "NAge58B", + "NAge59B", + "NAge60B", + "NAge61B", + "NAge62B", + "NAge63B", + "NAge64B", + "NAge65B", + "NAge66B", + "NAge67B", + "NAge68B", + "NAge69B", + "NAge70B", + "NAge71B", + "NAge72B", + "NAge73B", + "NAge74B", + "NAge75B", + "NAge76B", + "NAge77B", + "NAge78B", + "NAge79B", + "NAge80B", + "NAge81B", + "NAge82B", + "NAge83B", + "NAge84B", + "NAge85B", + "NAge86B", + "NAge87B", + "NAge88B", + "NAge89B", + "NAge90B", + "NAge91B", + "NAge92B", + "NAge93B", + "NAge94B", + "NAge95B", + "NAge96B", + "NAge97B", + "NAge98B", + "NAge99B", + "NAge0G", + "NAge1G", + "NAge2G", + "NAge3G", + "NAge4G", + "NAge5G", + "NAge6G", + "NAge7G", + "NAge8G", + "NAge9G", + "NAge10G", + "NAge11G", + "NAge12G", + "NAge13G", + "NAge14G", + "NAge15G", + "NAge16G", + "NAge17G", + "NAge18G", + "NAge19G", + "NAge20G", + "NAge21G", + "NAge22G", + "NAge23G", + "NAge24G", + "NAge25G", + "NAge26G", + "NAge27G", + "NAge28G", + "NAge29G", + "NAge30G", + "NAge31G", + "NAge32G", + "NAge33G", + "NAge34G", + "NAge35G", + "NAge36G", + "NAge37G", + "NAge38G", + "NAge39G", + "NAge40G", + "NAge41G", + "NAge42G", + "NAge43G", + "NAge44G", + "NAge45G", + "NAge46G", + "NAge47G", + "NAge48G", + "NAge49G", + "NAge50G", + "NAge51G", + "NAge52G", + "NAge53G", + "NAge54G", + "NAge55G", + "NAge56G", + "NAge57G", + "NAge58G", + "NAge59G", + "NAge60G", + "NAge61G", + "NAge62G", + "NAge63G", + "NAge64G", + "NAge65G", + "NAge66G", + "NAge67G", + "NAge68G", + "NAge69G", + "NAge70G", + "NAge71G", + "NAge72G", + "NAge73G", + "NAge74G", + "NAge75G", + "NAge76G", + "NAge77G", + "NAge78G", + "NAge79G", + "NAge80G", + "NAge81G", + "NAge82G", + "NAge83G", + "NAge84G", + "NAge85G", + "NAge86G", + "NAge87G", + "NAge88G", + "NAge89G", + "NAge90G", + "NAge91G", + "NAge92G", + "NAge93G", + "NAge94G", + "NAge95G", + "NAge96G", + "NAge97G", + "NAge98G", + "NAge99G", + "NAge0_A_B", + "NAge1_A_B", + "NAge2_A_B", + "NAge3_A_B", + "NAge4_A_B", + "NAge5_A_B", + "NAge6_A_B", + "NAge7_A_B", + "NAge8_A_B", + "NAge9_A_B", + "NAge10_A_B", + "NAge11_A_B", + "NAge12_A_B", + "NAge13_A_B", + "NAge14_A_B", + "NAge15_A_B", + "NAge16_A_B", + "NAge17_A_B", + "NAge18_A_B", + "NAge19_A_B", + "NAge20_A_B", + "NAge21_A_B", + "NAge22_A_B", + "NAge23_A_B", + "NAge24_A_B", + "NAge25_A_B", + "NAge26_A_B", + "NAge27_A_B", + "NAge28_A_B", + "NAge29_A_B", + "NAge30_A_B", + "NAge31_A_B", + "NAge32_A_B", + "NAge33_A_B", + "NAge34_A_B", + "NAge35_A_B", + "NAge36_A_B", + "NAge37_A_B", + "NAge38_A_B", + "NAge39_A_B", + "NAge40_A_B", + "NAge41_A_B", + "NAge42_A_B", + "NAge43_A_B", + "NAge44_A_B", + "NAge45_A_B", + "NAge46_A_B", + "NAge47_A_B", + "NAge48_A_B", + "NAge49_A_B", + "NAge50_A_B", + "NAge51_A_B", + "NAge52_A_B", + "NAge53_A_B", + "NAge54_A_B", + "NAge55_A_B", + "NAge56_A_B", + "NAge57_A_B", + "NAge58_A_B", + "NAge59_A_B", + "NAge60_A_B", + "NAge61_A_B", + "NAge62_A_B", + "NAge63_A_B", + "NAge64_A_B", + "NAge65_A_B", + "NAge66_A_B", + "NAge67_A_B", + "NAge68_A_B", + "NAge69_A_B", + "NAge70_A_B", + "NAge71_A_B", + "NAge72_A_B", + "NAge73_A_B", + "NAge74_A_B", + "NAge75_A_B", + "NAge76_A_B", + "NAge77_A_B", + "NAge78_A_B", + "NAge79_A_B", + "NAge80_A_B", + "NAge81_A_B", + "NAge82_A_B", + "NAge83_A_B", + "NAge84_A_B", + "NAge85_A_B", + "NAge86_A_B", + "NAge87_A_B", + "NAge88_A_B", + "NAge89_A_B", + "NAge90_A_B", + "NAge91_A_B", + "NAge92_A_B", + "NAge93_A_B", + "NAge94_A_B", + "NAge95_A_B", + "NAge96_A_B", + "NAge97_A_B", + "NAge98_A_B", + "NAge99_A_B", + "NAge0_A_G", + "NAge1_A_G", + "NAge2_A_G", + "NAge3_A_G", + "NAge4_A_G", + "NAge5_A_G", + "NAge6_A_G", + "NAge7_A_G", + "NAge8_A_G", + "NAge9_A_G", + "NAge10_A_G", + "NAge11_A_G", + "NAge12_A_G", + "NAge13_A_G", + "NAge14_A_G", + "NAge15_A_G", + "NAge16_A_G", + "NAge17_A_G", + "NAge18_A_G", + "NAge19_A_G", + "NAge20_A_G", + "NAge21_A_G", + "NAge22_A_G", + "NAge23_A_G", + "NAge24_A_G", + "NAge25_A_G", + "NAge26_A_G", + "NAge27_A_G", + "NAge28_A_G", + "NAge29_A_G", + "NAge30_A_G", + "NAge31_A_G", + "NAge32_A_G", + "NAge33_A_G", + "NAge34_A_G", + "NAge35_A_G", + "NAge36_A_G", + "NAge37_A_G", + "NAge38_A_G", + "NAge39_A_G", + "NAge40_A_G", + "NAge41_A_G", + "NAge42_A_G", + "NAge43_A_G", + "NAge44_A_G", + "NAge45_A_G", + "NAge46_A_G", + "NAge47_A_G", + "NAge48_A_G", + "NAge49_A_G", + "NAge50_A_G", + "NAge51_A_G", + "NAge52_A_G", + "NAge53_A_G", + "NAge54_A_G", + "NAge55_A_G", + "NAge56_A_G", + "NAge57_A_G", + "NAge58_A_G", + "NAge59_A_G", + "NAge60_A_G", + "NAge61_A_G", + "NAge62_A_G", + "NAge63_A_G", + "NAge64_A_G", + "NAge65_A_G", + "NAge66_A_G", + "NAge67_A_G", + "NAge68_A_G", + "NAge69_A_G", + "NAge70_A_G", + "NAge71_A_G", + "NAge72_A_G", + "NAge73_A_G", + "NAge74_A_G", + "NAge75_A_G", + "NAge76_A_G", + "NAge77_A_G", + "NAge78_A_G", + "NAge79_A_G", + "NAge80_A_G", + "NAge81_A_G", + "NAge82_A_G", + "NAge83_A_G", + "NAge84_A_G", + "NAge85_A_G", + "NAge86_A_G", + "NAge87_A_G", + "NAge88_A_G", + "NAge89_A_G", + "NAge90_A_G", + "NAge91_A_G", + "NAge92_A_G", + "NAge93_A_G", + "NAge94_A_G", + "NAge95_A_G", + "NAge96_A_G", + "NAge97_A_G", + "NAge98_A_G", + "NAge99_A_G"),#,"TotalIncome"), + by="HHID"] + + # PSum <- PSum[TotalIncome>0] + + HHI <- merge(B,PSum,by="HHID") + HHI[,EqSizeOECD := ifelse(Size==NKids,1+(NKids-1)*0.5, + 1 + (Size-NKids-1)*0.7 + (NKids)*0.5)] + HHI <- HHI[!is.na(HLiterate)] + + rm(P,B,PSum) + save(HHI,year,file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + + + rm(HHI) + + + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights>-HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + + P1<-merge(P1,HHWeights) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) + + + weighted.hist(P1$Age,P1$Weight,breaks=1:99,main="Age weighted histogram in Iran (1397)") + + P1<-merge(P1,HHBase) + P1<- merge(P1,lactating,by="HHID",all.x = TRUE) + + P1U<-P1[Region=="Urban"] + weighted.hist(P1U$Age,P1U$Weight,breaks=1:99,main="Age weighted histogram in Urban Areas (1397)") + + P1R<-P1[Region=="Rural"] + weighted.hist(P1R$Age,P1R$Weight,breaks=1:99,main="Age weighted histogram in Rural reas (1397)") + + + # load(file = "Cal_Edition.rda") +# Poverty<-as.data.table(Poverty) + # Edited<-Poverty[,.(Age,Sex,Cal_B_Edited,Cal_W_Edited)] + # P1<-merge(P1,Edited,by=c("Sex", "Age")) + + + P1[, B0 :=ifelse( Age== 0 & Sex=="Male" ,1 ,0)] + P1[, B1 :=ifelse( Age== 1 & Sex=="Male" ,1 ,0)] + P1[, B2 :=ifelse( Age== 2 & Sex=="Male" ,1 ,0)] + P1[, B3 :=ifelse( Age== 3 & Sex=="Male" ,1 ,0)] + P1[, B4 :=ifelse( Age== 4 & Sex=="Male" ,1 ,0)] + P1[, B5 :=ifelse( Age== 5 & Sex=="Male" ,1 ,0)] + P1[, B6 :=ifelse( Age== 6 & Sex=="Male" ,1 ,0)] + P1[, B7 :=ifelse( Age== 7 & Sex=="Male" ,1 ,0)] + P1[, B8 :=ifelse( Age== 8 & Sex=="Male" ,1 ,0)] + P1[, B9 :=ifelse( Age== 9 & Sex=="Male" ,1 ,0)] + P1[, B10 :=ifelse( Age== 10 & Sex=="Male" ,1 ,0)] + P1[, B11 :=ifelse( Age== 11 & Sex=="Male" ,1 ,0)] + P1[, B12 :=ifelse( Age== 12 & Sex=="Male" ,1 ,0)] + P1[, B13 :=ifelse( Age== 13 & Sex=="Male" ,1 ,0)] + P1[, B14 :=ifelse( Age== 14 & Sex=="Male" ,1 ,0)] + P1[, B15 :=ifelse( Age== 15 & Sex=="Male" ,1 ,0)] + P1[, B16 :=ifelse( Age== 16 & Sex=="Male" ,1 ,0)] + P1[, B17 :=ifelse( Age== 17 & Sex=="Male" ,1 ,0)] + P1[, B18 :=ifelse( Age== 18 & Sex=="Male" ,1 ,0)] + P1[, B19 :=ifelse( Age== 19 & Sex=="Male" ,1 ,0)] + P1[, B20 :=ifelse( Age== 20 & Sex=="Male" ,1 ,0)] + P1[, B21 :=ifelse( Age== 21 & Sex=="Male" ,1 ,0)] + P1[, B22 :=ifelse( Age== 22 & Sex=="Male" ,1 ,0)] + P1[, B23 :=ifelse( Age== 23 & Sex=="Male" ,1 ,0)] + P1[, B24 :=ifelse( Age== 24 & Sex=="Male" ,1 ,0)] + P1[, B25 :=ifelse( Age== 25 & Sex=="Male" ,1 ,0)] + P1[, B26 :=ifelse( Age== 26 & Sex=="Male" ,1 ,0)] + P1[, B27 :=ifelse( Age== 27 & Sex=="Male" ,1 ,0)] + P1[, B28 :=ifelse( Age== 28 & Sex=="Male" ,1 ,0)] + P1[, B29 :=ifelse( Age== 29 & Sex=="Male" ,1 ,0)] + P1[, B30 :=ifelse( Age== 30 & Sex=="Male" ,1 ,0)] + P1[, B31 :=ifelse( Age== 31 & Sex=="Male" ,1 ,0)] + P1[, B32 :=ifelse( Age== 32 & Sex=="Male" ,1 ,0)] + P1[, B33 :=ifelse( Age== 33 & Sex=="Male" ,1 ,0)] + P1[, B34 :=ifelse( Age== 34 & Sex=="Male" ,1 ,0)] + P1[, B35 :=ifelse( Age== 35 & Sex=="Male" ,1 ,0)] + P1[, B36 :=ifelse( Age== 36 & Sex=="Male" ,1 ,0)] + P1[, B37 :=ifelse( Age== 37 & Sex=="Male" ,1 ,0)] + P1[, B38 :=ifelse( Age== 38 & Sex=="Male" ,1 ,0)] + P1[, B39 :=ifelse( Age== 39 & Sex=="Male" ,1 ,0)] + P1[, B40 :=ifelse( Age== 40 & Sex=="Male" ,1 ,0)] + P1[, B41 :=ifelse( Age== 41 & Sex=="Male" ,1 ,0)] + P1[, B42 :=ifelse( Age== 42 & Sex=="Male" ,1 ,0)] + P1[, B43 :=ifelse( Age== 43 & Sex=="Male" ,1 ,0)] + P1[, B44 :=ifelse( Age== 44 & Sex=="Male" ,1 ,0)] + P1[, B45 :=ifelse( Age== 45 & Sex=="Male" ,1 ,0)] + P1[, B46 :=ifelse( Age== 46 & Sex=="Male" ,1 ,0)] + P1[, B47 :=ifelse( Age== 47 & Sex=="Male" ,1 ,0)] + P1[, B48 :=ifelse( Age== 48 & Sex=="Male" ,1 ,0)] + P1[, B49 :=ifelse( Age== 49 & Sex=="Male" ,1 ,0)] + P1[, B50 :=ifelse( Age== 50 & Sex=="Male" ,1 ,0)] + P1[, B51 :=ifelse( Age== 51 & Sex=="Male" ,1 ,0)] + P1[, B52 :=ifelse( Age== 52 & Sex=="Male" ,1 ,0)] + P1[, B53 :=ifelse( Age== 53 & Sex=="Male" ,1 ,0)] + P1[, B54 :=ifelse( Age== 54 & Sex=="Male" ,1 ,0)] + P1[, B55 :=ifelse( Age== 55 & Sex=="Male" ,1 ,0)] + P1[, B56 :=ifelse( Age== 56 & Sex=="Male" ,1 ,0)] + P1[, B57 :=ifelse( Age== 57 & Sex=="Male" ,1 ,0)] + P1[, B58 :=ifelse( Age== 58 & Sex=="Male" ,1 ,0)] + P1[, B59 :=ifelse( Age== 59 & Sex=="Male" ,1 ,0)] + P1[, B60 :=ifelse( Age== 60 & Sex=="Male" ,1 ,0)] + P1[, B61 :=ifelse( Age== 61 & Sex=="Male" ,1 ,0)] + P1[, B62 :=ifelse( Age== 62 & Sex=="Male" ,1 ,0)] + P1[, B63 :=ifelse( Age== 63 & Sex=="Male" ,1 ,0)] + P1[, B64 :=ifelse( Age== 64 & Sex=="Male" ,1 ,0)] + P1[, B65 :=ifelse( Age== 65 & Sex=="Male" ,1 ,0)] + P1[, B66 :=ifelse( Age== 66 & Sex=="Male" ,1 ,0)] + P1[, B67 :=ifelse( Age== 67 & Sex=="Male" ,1 ,0)] + P1[, B68 :=ifelse( Age== 68 & Sex=="Male" ,1 ,0)] + P1[, B69 :=ifelse( Age== 69 & Sex=="Male" ,1 ,0)] + P1[, B70 :=ifelse( Age== 70 & Sex=="Male" ,1 ,0)] + P1[, B71 :=ifelse( Age== 71 & Sex=="Male" ,1 ,0)] + P1[, B72 :=ifelse( Age== 72 & Sex=="Male" ,1 ,0)] + P1[, B73 :=ifelse( Age== 73 & Sex=="Male" ,1 ,0)] + P1[, B74 :=ifelse( Age== 74 & Sex=="Male" ,1 ,0)] + P1[, B75 :=ifelse( Age== 75 & Sex=="Male" ,1 ,0)] + P1[, B76 :=ifelse( Age== 76 & Sex=="Male" ,1 ,0)] + P1[, B77 :=ifelse( Age== 77 & Sex=="Male" ,1 ,0)] + P1[, B78 :=ifelse( Age== 78 & Sex=="Male" ,1 ,0)] + P1[, B79 :=ifelse( Age== 79 & Sex=="Male" ,1 ,0)] + P1[, B80 :=ifelse( Age== 80 & Sex=="Male" ,1 ,0)] + P1[, B81 :=ifelse( Age== 81 & Sex=="Male" ,1 ,0)] + P1[, B82 :=ifelse( Age== 82 & Sex=="Male" ,1 ,0)] + P1[, B83 :=ifelse( Age== 83 & Sex=="Male" ,1 ,0)] + P1[, B84 :=ifelse( Age== 84 & Sex=="Male" ,1 ,0)] + P1[, B85 :=ifelse( Age== 85 & Sex=="Male" ,1 ,0)] + P1[, B86 :=ifelse( Age== 86 & Sex=="Male" ,1 ,0)] + P1[, B87 :=ifelse( Age== 87 & Sex=="Male" ,1 ,0)] + P1[, B88 :=ifelse( Age== 88 & Sex=="Male" ,1 ,0)] + P1[, B89 :=ifelse( Age== 89 & Sex=="Male" ,1 ,0)] + P1[, B90 :=ifelse( Age== 90 & Sex=="Male" ,1 ,0)] + P1[, B91 :=ifelse( Age== 91 & Sex=="Male" ,1 ,0)] + P1[, B92 :=ifelse( Age== 92 & Sex=="Male" ,1 ,0)] + P1[, B93 :=ifelse( Age== 93 & Sex=="Male" ,1 ,0)] + P1[, B94 :=ifelse( Age== 94 & Sex=="Male" ,1 ,0)] + P1[, B95 :=ifelse( Age== 95 & Sex=="Male" ,1 ,0)] + P1[, B96 :=ifelse( Age== 96 & Sex=="Male" ,1 ,0)] + P1[, B97 :=ifelse( Age== 97 & Sex=="Male" ,1 ,0)] + P1[, B98 :=ifelse( Age== 98 & Sex=="Male" ,1 ,0)] + P1[, B99 :=ifelse( Age== 99 & Sex=="Male" ,1 ,0)] + P1[, G0 :=ifelse( Age== 0 & Sex=="Female" ,1 ,0)] + P1[, G1 :=ifelse( Age== 1 & Sex=="Female" ,1 ,0)] + P1[, G2 :=ifelse( Age== 2 & Sex=="Female" ,1 ,0)] + P1[, G3 :=ifelse( Age== 3 & Sex=="Female" ,1 ,0)] + P1[, G4 :=ifelse( Age== 4 & Sex=="Female" ,1 ,0)] + P1[, G5 :=ifelse( Age== 5 & Sex=="Female" ,1 ,0)] + P1[, G6 :=ifelse( Age== 6 & Sex=="Female" ,1 ,0)] + P1[, G7 :=ifelse( Age== 7 & Sex=="Female" ,1 ,0)] + P1[, G8 :=ifelse( Age== 8 & Sex=="Female" ,1 ,0)] + P1[, G9 :=ifelse( Age== 9 & Sex=="Female" ,1 ,0)] + P1[, G10 :=ifelse( Age== 10 & Sex=="Female" ,1 ,0)] + P1[, G11 :=ifelse( Age== 11 & Sex=="Female" ,1 ,0)] + P1[, G12 :=ifelse( Age== 12 & Sex=="Female" ,1 ,0)] + P1[, G13 :=ifelse( Age== 13 & Sex=="Female" ,1 ,0)] + P1[, G14 :=ifelse( Age== 14 & Sex=="Female" ,1 ,0)] + P1[, G15 :=ifelse( Age== 15 & Sex=="Female" ,1 ,0)] + P1[, G16 :=ifelse( Age== 16 & Sex=="Female" ,1 ,0)] + P1[, G17 :=ifelse( Age== 17 & Sex=="Female" ,1 ,0)] + P1[, G18 :=ifelse( Age== 18 & Sex=="Female" ,1 ,0)] + P1[, G19 :=ifelse( Age== 19 & Sex=="Female" ,1 ,0)] + P1[, G20 :=ifelse( Age== 20 & Sex=="Female" ,1 ,0)] + P1[, G21 :=ifelse( Age== 21 & Sex=="Female" ,1 ,0)] + P1[, G22 :=ifelse( Age== 22 & Sex=="Female" ,1 ,0)] + P1[, G23 :=ifelse( Age== 23 & Sex=="Female" ,1 ,0)] + P1[, G24 :=ifelse( Age== 24 & Sex=="Female" ,1 ,0)] + P1[, G25 :=ifelse( Age== 25 & Sex=="Female" ,1 ,0)] + P1[, G26 :=ifelse( Age== 26 & Sex=="Female" ,1 ,0)] + P1[, G27 :=ifelse( Age== 27 & Sex=="Female" ,1 ,0)] + P1[, G28 :=ifelse( Age== 28 & Sex=="Female" ,1 ,0)] + P1[, G29 :=ifelse( Age== 29 & Sex=="Female" ,1 ,0)] + P1[, G30 :=ifelse( Age== 30 & Sex=="Female" ,1 ,0)] + P1[, G31 :=ifelse( Age== 31 & Sex=="Female" ,1 ,0)] + P1[, G32 :=ifelse( Age== 32 & Sex=="Female" ,1 ,0)] + P1[, G33 :=ifelse( Age== 33 & Sex=="Female" ,1 ,0)] + P1[, G34 :=ifelse( Age== 34 & Sex=="Female" ,1 ,0)] + P1[, G35 :=ifelse( Age== 35 & Sex=="Female" ,1 ,0)] + P1[, G36 :=ifelse( Age== 36 & Sex=="Female" ,1 ,0)] + P1[, G37 :=ifelse( Age== 37 & Sex=="Female" ,1 ,0)] + P1[, G38 :=ifelse( Age== 38 & Sex=="Female" ,1 ,0)] + P1[, G39 :=ifelse( Age== 39 & Sex=="Female" ,1 ,0)] + P1[, G40 :=ifelse( Age== 40 & Sex=="Female" ,1 ,0)] + P1[, G41 :=ifelse( Age== 41 & Sex=="Female" ,1 ,0)] + P1[, G42 :=ifelse( Age== 42 & Sex=="Female" ,1 ,0)] + P1[, G43 :=ifelse( Age== 43 & Sex=="Female" ,1 ,0)] + P1[, G44 :=ifelse( Age== 44 & Sex=="Female" ,1 ,0)] + P1[, G45 :=ifelse( Age== 45 & Sex=="Female" ,1 ,0)] + P1[, G46 :=ifelse( Age== 46 & Sex=="Female" ,1 ,0)] + P1[, G47 :=ifelse( Age== 47 & Sex=="Female" ,1 ,0)] + P1[, G48 :=ifelse( Age== 48 & Sex=="Female" ,1 ,0)] + P1[, G49 :=ifelse( Age== 49 & Sex=="Female" ,1 ,0)] + P1[, G50 :=ifelse( Age== 50 & Sex=="Female" ,1 ,0)] + P1[, G51 :=ifelse( Age== 51 & Sex=="Female" ,1 ,0)] + P1[, G52 :=ifelse( Age== 52 & Sex=="Female" ,1 ,0)] + P1[, G53 :=ifelse( Age== 53 & Sex=="Female" ,1 ,0)] + P1[, G54 :=ifelse( Age== 54 & Sex=="Female" ,1 ,0)] + P1[, G55 :=ifelse( Age== 55 & Sex=="Female" ,1 ,0)] + P1[, G56 :=ifelse( Age== 56 & Sex=="Female" ,1 ,0)] + P1[, G57 :=ifelse( Age== 57 & Sex=="Female" ,1 ,0)] + P1[, G58 :=ifelse( Age== 58 & Sex=="Female" ,1 ,0)] + P1[, G59 :=ifelse( Age== 59 & Sex=="Female" ,1 ,0)] + P1[, G60 :=ifelse( Age== 60 & Sex=="Female" ,1 ,0)] + P1[, G61 :=ifelse( Age== 61 & Sex=="Female" ,1 ,0)] + P1[, G62 :=ifelse( Age== 62 & Sex=="Female" ,1 ,0)] + P1[, G63 :=ifelse( Age== 63 & Sex=="Female" ,1 ,0)] + P1[, G64 :=ifelse( Age== 64 & Sex=="Female" ,1 ,0)] + P1[, G65 :=ifelse( Age== 65 & Sex=="Female" ,1 ,0)] + P1[, G66 :=ifelse( Age== 66 & Sex=="Female" ,1 ,0)] + P1[, G67 :=ifelse( Age== 67 & Sex=="Female" ,1 ,0)] + P1[, G68 :=ifelse( Age== 68 & Sex=="Female" ,1 ,0)] + P1[, G69 :=ifelse( Age== 69 & Sex=="Female" ,1 ,0)] + P1[, G70 :=ifelse( Age== 70 & Sex=="Female" ,1 ,0)] + P1[, G71 :=ifelse( Age== 71 & Sex=="Female" ,1 ,0)] + P1[, G72 :=ifelse( Age== 72 & Sex=="Female" ,1 ,0)] + P1[, G73 :=ifelse( Age== 73 & Sex=="Female" ,1 ,0)] + P1[, G74 :=ifelse( Age== 74 & Sex=="Female" ,1 ,0)] + P1[, G75 :=ifelse( Age== 75 & Sex=="Female" ,1 ,0)] + P1[, G76 :=ifelse( Age== 76 & Sex=="Female" ,1 ,0)] + P1[, G77 :=ifelse( Age== 77 & Sex=="Female" ,1 ,0)] + P1[, G78 :=ifelse( Age== 78 & Sex=="Female" ,1 ,0)] + P1[, G79 :=ifelse( Age== 79 & Sex=="Female" ,1 ,0)] + P1[, G80 :=ifelse( Age== 80 & Sex=="Female" ,1 ,0)] + P1[, G81 :=ifelse( Age== 81 & Sex=="Female" ,1 ,0)] + P1[, G82 :=ifelse( Age== 82 & Sex=="Female" ,1 ,0)] + P1[, G83 :=ifelse( Age== 83 & Sex=="Female" ,1 ,0)] + P1[, G84 :=ifelse( Age== 84 & Sex=="Female" ,1 ,0)] + P1[, G85 :=ifelse( Age== 85 & Sex=="Female" ,1 ,0)] + P1[, G86 :=ifelse( Age== 86 & Sex=="Female" ,1 ,0)] + P1[, G87 :=ifelse( Age== 87 & Sex=="Female" ,1 ,0)] + P1[, G88 :=ifelse( Age== 88 & Sex=="Female" ,1 ,0)] + P1[, G89 :=ifelse( Age== 89 & Sex=="Female" ,1 ,0)] + P1[, G90 :=ifelse( Age== 90 & Sex=="Female" ,1 ,0)] + P1[, G91 :=ifelse( Age== 91 & Sex=="Female" ,1 ,0)] + P1[, G92 :=ifelse( Age== 92 & Sex=="Female" ,1 ,0)] + P1[, G93 :=ifelse( Age== 93 & Sex=="Female" ,1 ,0)] + P1[, G94 :=ifelse( Age== 94 & Sex=="Female" ,1 ,0)] + P1[, G95 :=ifelse( Age== 95 & Sex=="Female" ,1 ,0)] + P1[, G96 :=ifelse( Age== 96 & Sex=="Female" ,1 ,0)] + P1[, G97 :=ifelse( Age== 97 & Sex=="Female" ,1 ,0)] + P1[, G98 :=ifelse( Age== 98 & Sex=="Female" ,1 ,0)] + P1[, G99 :=ifelse( Age== 99 & Sex=="Female" ,1 ,0)] + + + + P1[,weighted.mean(B1,Weight)] + P1[,weighted.mean(B2,Weight)] + P1[,weighted.mean(B3,Weight)] + P1[,weighted.mean(B4,Weight)] + P1[,weighted.mean(B5,Weight)] + P1[,weighted.mean(B6,Weight)] + P1[,weighted.mean(B7,Weight)] + P1[,weighted.mean(B8,Weight)] + P1[,weighted.mean(B9,Weight)] + P1[,weighted.mean(B10,Weight)] + P1[,weighted.mean(G1,Weight)] + P1[,weighted.mean(G2,Weight)] + P1[,weighted.mean(G3,Weight)] + P1[,weighted.mean(G4,Weight)] + P1[,weighted.mean(G5,Weight)] + P1[,weighted.mean(G6,Weight)] + P1[,weighted.mean(G7,Weight)] + P1[,weighted.mean(G8,Weight)] + P1[,weighted.mean(G9,Weight)] + P1[,weighted.mean(G10,Weight)] + + P1<-P1[,Calorie_Need_WorldBank:= + weighted.mean( B0 ,Weight)*Settings$ KCaloryNeed_B0 + + weighted.mean( B1 ,Weight)*Settings$ KCaloryNeed_B1 + + weighted.mean( B2 ,Weight)*Settings$ KCaloryNeed_B2 + + weighted.mean( B3 ,Weight)*Settings$ KCaloryNeed_B3 + + weighted.mean( B4 ,Weight)*Settings$ KCaloryNeed_B4 + + weighted.mean( B5 ,Weight)*Settings$ KCaloryNeed_B5 + + weighted.mean( B6 ,Weight)*Settings$ KCaloryNeed_B6 + + weighted.mean( B7 ,Weight)*Settings$ KCaloryNeed_B7 + + weighted.mean( B8 ,Weight)*Settings$ KCaloryNeed_B8 + + weighted.mean( B9 ,Weight)*Settings$ KCaloryNeed_B9 + + weighted.mean( B10 ,Weight)*Settings$ KCaloryNeed_B10 + + weighted.mean( B11 ,Weight)*Settings$ KCaloryNeed_B11 + + weighted.mean( B12 ,Weight)*Settings$ KCaloryNeed_B12 + + weighted.mean( B13 ,Weight)*Settings$ KCaloryNeed_B13 + + weighted.mean( B14 ,Weight)*Settings$ KCaloryNeed_B14 + + weighted.mean( B15 ,Weight)*Settings$ KCaloryNeed_B15 + + weighted.mean( B16 ,Weight)*Settings$ KCaloryNeed_B16 + + weighted.mean( B17 ,Weight)*Settings$ KCaloryNeed_B17 + + weighted.mean( B18 ,Weight)*Settings$ KCaloryNeed_B18 + + weighted.mean( B19 ,Weight)*Settings$ KCaloryNeed_B19 + + weighted.mean( B20 ,Weight)*Settings$ KCaloryNeed_B20 + + weighted.mean( B21 ,Weight)*Settings$ KCaloryNeed_B21 + + weighted.mean( B22 ,Weight)*Settings$ KCaloryNeed_B22 + + weighted.mean( B23 ,Weight)*Settings$ KCaloryNeed_B23 + + weighted.mean( B24 ,Weight)*Settings$ KCaloryNeed_B24 + + weighted.mean( B25 ,Weight)*Settings$ KCaloryNeed_B25 + + weighted.mean( B26 ,Weight)*Settings$ KCaloryNeed_B26 + + weighted.mean( B27 ,Weight)*Settings$ KCaloryNeed_B27 + + weighted.mean( B28 ,Weight)*Settings$ KCaloryNeed_B28 + + weighted.mean( B29 ,Weight)*Settings$ KCaloryNeed_B29 + + weighted.mean( B30 ,Weight)*Settings$ KCaloryNeed_B30 + + weighted.mean( B31 ,Weight)*Settings$ KCaloryNeed_B31 + + weighted.mean( B32 ,Weight)*Settings$ KCaloryNeed_B32 + + weighted.mean( B33 ,Weight)*Settings$ KCaloryNeed_B33 + + weighted.mean( B34 ,Weight)*Settings$ KCaloryNeed_B34 + + weighted.mean( B35 ,Weight)*Settings$ KCaloryNeed_B35 + + weighted.mean( B36 ,Weight)*Settings$ KCaloryNeed_B36 + + weighted.mean( B37 ,Weight)*Settings$ KCaloryNeed_B37 + + weighted.mean( B38 ,Weight)*Settings$ KCaloryNeed_B38 + + weighted.mean( B39 ,Weight)*Settings$ KCaloryNeed_B39 + + weighted.mean( B40 ,Weight)*Settings$ KCaloryNeed_B40 + + weighted.mean( B41 ,Weight)*Settings$ KCaloryNeed_B41 + + weighted.mean( B42 ,Weight)*Settings$ KCaloryNeed_B42 + + weighted.mean( B43 ,Weight)*Settings$ KCaloryNeed_B43 + + weighted.mean( B44 ,Weight)*Settings$ KCaloryNeed_B44 + + weighted.mean( B45 ,Weight)*Settings$ KCaloryNeed_B45 + + weighted.mean( B46 ,Weight)*Settings$ KCaloryNeed_B46 + + weighted.mean( B47 ,Weight)*Settings$ KCaloryNeed_B47 + + weighted.mean( B48 ,Weight)*Settings$ KCaloryNeed_B48 + + weighted.mean( B49 ,Weight)*Settings$ KCaloryNeed_B49 + + weighted.mean( B50 ,Weight)*Settings$ KCaloryNeed_B50 + + weighted.mean( B51 ,Weight)*Settings$ KCaloryNeed_B51 + + weighted.mean( B52 ,Weight)*Settings$ KCaloryNeed_B52 + + weighted.mean( B53 ,Weight)*Settings$ KCaloryNeed_B53 + + weighted.mean( B54 ,Weight)*Settings$ KCaloryNeed_B54 + + weighted.mean( B55 ,Weight)*Settings$ KCaloryNeed_B55 + + weighted.mean( B56 ,Weight)*Settings$ KCaloryNeed_B56 + + weighted.mean( B57 ,Weight)*Settings$ KCaloryNeed_B57 + + weighted.mean( B58 ,Weight)*Settings$ KCaloryNeed_B58 + + weighted.mean( B59 ,Weight)*Settings$ KCaloryNeed_B59 + + weighted.mean( B60 ,Weight)*Settings$ KCaloryNeed_B60 + + weighted.mean( B61 ,Weight)*Settings$ KCaloryNeed_B61 + + weighted.mean( B62 ,Weight)*Settings$ KCaloryNeed_B62 + + weighted.mean( B63 ,Weight)*Settings$ KCaloryNeed_B63 + + weighted.mean( B64 ,Weight)*Settings$ KCaloryNeed_B64 + + weighted.mean( B65 ,Weight)*Settings$ KCaloryNeed_B65 + + weighted.mean( B66 ,Weight)*Settings$ KCaloryNeed_B66 + + weighted.mean( B67 ,Weight)*Settings$ KCaloryNeed_B67 + + weighted.mean( B68 ,Weight)*Settings$ KCaloryNeed_B68 + + weighted.mean( B69 ,Weight)*Settings$ KCaloryNeed_B69 + + weighted.mean( B70 ,Weight)*Settings$ KCaloryNeed_B70 + + weighted.mean( B71 ,Weight)*Settings$ KCaloryNeed_B71 + + weighted.mean( B72 ,Weight)*Settings$ KCaloryNeed_B72 + + weighted.mean( B73 ,Weight)*Settings$ KCaloryNeed_B73 + + weighted.mean( B74 ,Weight)*Settings$ KCaloryNeed_B74 + + weighted.mean( B75 ,Weight)*Settings$ KCaloryNeed_B75 + + weighted.mean( B76 ,Weight)*Settings$ KCaloryNeed_B76 + + weighted.mean( B77 ,Weight)*Settings$ KCaloryNeed_B77 + + weighted.mean( B78 ,Weight)*Settings$ KCaloryNeed_B78 + + weighted.mean( B79 ,Weight)*Settings$ KCaloryNeed_B79 + + weighted.mean( B80 ,Weight)*Settings$ KCaloryNeed_B80 + + weighted.mean( B81 ,Weight)*Settings$ KCaloryNeed_B81 + + weighted.mean( B82 ,Weight)*Settings$ KCaloryNeed_B82 + + weighted.mean( B83 ,Weight)*Settings$ KCaloryNeed_B83 + + weighted.mean( B84 ,Weight)*Settings$ KCaloryNeed_B84 + + weighted.mean( B85 ,Weight)*Settings$ KCaloryNeed_B85 + + weighted.mean( B86 ,Weight)*Settings$ KCaloryNeed_B86 + + weighted.mean( B87 ,Weight)*Settings$ KCaloryNeed_B87 + + weighted.mean( B88 ,Weight)*Settings$ KCaloryNeed_B88 + + weighted.mean( B89 ,Weight)*Settings$ KCaloryNeed_B89 + + weighted.mean( B90 ,Weight)*Settings$ KCaloryNeed_B90 + + weighted.mean( B91 ,Weight)*Settings$ KCaloryNeed_B91 + + weighted.mean( B92 ,Weight)*Settings$ KCaloryNeed_B92 + + weighted.mean( B93 ,Weight)*Settings$ KCaloryNeed_B93 + + weighted.mean( B94 ,Weight)*Settings$ KCaloryNeed_B94 + + weighted.mean( B95 ,Weight)*Settings$ KCaloryNeed_B95 + + weighted.mean( B96 ,Weight)*Settings$ KCaloryNeed_B96 + + weighted.mean( B97 ,Weight)*Settings$ KCaloryNeed_B97 + + weighted.mean( B98 ,Weight)*Settings$ KCaloryNeed_B98 + + weighted.mean( B99 ,Weight)*Settings$ KCaloryNeed_B99 + + weighted.mean( G0 ,Weight)*Settings$ KCaloryNeed_G0 + + weighted.mean( G1 ,Weight)*Settings$ KCaloryNeed_G1 + + weighted.mean( G2 ,Weight)*Settings$ KCaloryNeed_G2 + + weighted.mean( G3 ,Weight)*Settings$ KCaloryNeed_G3 + + weighted.mean( G4 ,Weight)*Settings$ KCaloryNeed_G4 + + weighted.mean( G5 ,Weight)*Settings$ KCaloryNeed_G5 + + weighted.mean( G6 ,Weight)*Settings$ KCaloryNeed_G6 + + weighted.mean( G7 ,Weight)*Settings$ KCaloryNeed_G7 + + weighted.mean( G8 ,Weight)*Settings$ KCaloryNeed_G8 + + weighted.mean( G9 ,Weight)*Settings$ KCaloryNeed_G9 + + weighted.mean( G10 ,Weight)*Settings$ KCaloryNeed_G10 + + weighted.mean( G11 ,Weight)*Settings$ KCaloryNeed_G11 + + weighted.mean( G12 ,Weight)*Settings$ KCaloryNeed_G12 + + weighted.mean( G13 ,Weight)*Settings$ KCaloryNeed_G13 + + weighted.mean( G14 ,Weight)*Settings$ KCaloryNeed_G14 + + weighted.mean( G15 ,Weight)*Settings$ KCaloryNeed_G15 + + weighted.mean( G16 ,Weight)*Settings$ KCaloryNeed_G16 + + weighted.mean( G17 ,Weight)*Settings$ KCaloryNeed_G17 + + weighted.mean( G18 ,Weight)*Settings$ KCaloryNeed_G18 + + weighted.mean( G19 ,Weight)*Settings$ KCaloryNeed_G19 + + weighted.mean( G20 ,Weight)*Settings$ KCaloryNeed_G20 + + weighted.mean( G21 ,Weight)*Settings$ KCaloryNeed_G21 + + weighted.mean( G22 ,Weight)*Settings$ KCaloryNeed_G22 + + weighted.mean( G23 ,Weight)*Settings$ KCaloryNeed_G23 + + weighted.mean( G24 ,Weight)*Settings$ KCaloryNeed_G24 + + weighted.mean( G25 ,Weight)*Settings$ KCaloryNeed_G25 + + weighted.mean( G26 ,Weight)*Settings$ KCaloryNeed_G26 + + weighted.mean( G27 ,Weight)*Settings$ KCaloryNeed_G27 + + weighted.mean( G28 ,Weight)*Settings$ KCaloryNeed_G28 + + weighted.mean( G29 ,Weight)*Settings$ KCaloryNeed_G29 + + weighted.mean( G30 ,Weight)*Settings$ KCaloryNeed_G30 + + weighted.mean( G31 ,Weight)*Settings$ KCaloryNeed_G31 + + weighted.mean( G32 ,Weight)*Settings$ KCaloryNeed_G32 + + weighted.mean( G33 ,Weight)*Settings$ KCaloryNeed_G33 + + weighted.mean( G34 ,Weight)*Settings$ KCaloryNeed_G34 + + weighted.mean( G35 ,Weight)*Settings$ KCaloryNeed_G35 + + weighted.mean( G36 ,Weight)*Settings$ KCaloryNeed_G36 + + weighted.mean( G37 ,Weight)*Settings$ KCaloryNeed_G37 + + weighted.mean( G38 ,Weight)*Settings$ KCaloryNeed_G38 + + weighted.mean( G39 ,Weight)*Settings$ KCaloryNeed_G39 + + weighted.mean( G40 ,Weight)*Settings$ KCaloryNeed_G40 + + weighted.mean( G41 ,Weight)*Settings$ KCaloryNeed_G41 + + weighted.mean( G42 ,Weight)*Settings$ KCaloryNeed_G42 + + weighted.mean( G43 ,Weight)*Settings$ KCaloryNeed_G43 + + weighted.mean( G44 ,Weight)*Settings$ KCaloryNeed_G44 + + weighted.mean( G45 ,Weight)*Settings$ KCaloryNeed_G45 + + weighted.mean( G46 ,Weight)*Settings$ KCaloryNeed_G46 + + weighted.mean( G47 ,Weight)*Settings$ KCaloryNeed_G47 + + weighted.mean( G48 ,Weight)*Settings$ KCaloryNeed_G48 + + weighted.mean( G49 ,Weight)*Settings$ KCaloryNeed_G49 + + weighted.mean( G50 ,Weight)*Settings$ KCaloryNeed_G50 + + weighted.mean( G51 ,Weight)*Settings$ KCaloryNeed_G51 + + weighted.mean( G52 ,Weight)*Settings$ KCaloryNeed_G52 + + weighted.mean( G53 ,Weight)*Settings$ KCaloryNeed_G53 + + weighted.mean( G54 ,Weight)*Settings$ KCaloryNeed_G54 + + weighted.mean( G55 ,Weight)*Settings$ KCaloryNeed_G55 + + weighted.mean( G56 ,Weight)*Settings$ KCaloryNeed_G56 + + weighted.mean( G57 ,Weight)*Settings$ KCaloryNeed_G57 + + weighted.mean( G58 ,Weight)*Settings$ KCaloryNeed_G58 + + weighted.mean( G59 ,Weight)*Settings$ KCaloryNeed_G59 + + weighted.mean( G60 ,Weight)*Settings$ KCaloryNeed_G60 + + weighted.mean( G61 ,Weight)*Settings$ KCaloryNeed_G61 + + weighted.mean( G62 ,Weight)*Settings$ KCaloryNeed_G62 + + weighted.mean( G63 ,Weight)*Settings$ KCaloryNeed_G63 + + weighted.mean( G64 ,Weight)*Settings$ KCaloryNeed_G64 + + weighted.mean( G65 ,Weight)*Settings$ KCaloryNeed_G65 + + weighted.mean( G66 ,Weight)*Settings$ KCaloryNeed_G66 + + weighted.mean( G67 ,Weight)*Settings$ KCaloryNeed_G67 + + weighted.mean( G68 ,Weight)*Settings$ KCaloryNeed_G68 + + weighted.mean( G69 ,Weight)*Settings$ KCaloryNeed_G69 + + weighted.mean( G70 ,Weight)*Settings$ KCaloryNeed_G70 + + weighted.mean( G71 ,Weight)*Settings$ KCaloryNeed_G71 + + weighted.mean( G72 ,Weight)*Settings$ KCaloryNeed_G72 + + weighted.mean( G73 ,Weight)*Settings$ KCaloryNeed_G73 + + weighted.mean( G74 ,Weight)*Settings$ KCaloryNeed_G74 + + weighted.mean( G75 ,Weight)*Settings$ KCaloryNeed_G75 + + weighted.mean( G76 ,Weight)*Settings$ KCaloryNeed_G76 + + weighted.mean( G77 ,Weight)*Settings$ KCaloryNeed_G77 + + weighted.mean( G78 ,Weight)*Settings$ KCaloryNeed_G78 + + weighted.mean( G79 ,Weight)*Settings$ KCaloryNeed_G79 + + weighted.mean( G80 ,Weight)*Settings$ KCaloryNeed_G80 + + weighted.mean( G81 ,Weight)*Settings$ KCaloryNeed_G81 + + weighted.mean( G82 ,Weight)*Settings$ KCaloryNeed_G82 + + weighted.mean( G83 ,Weight)*Settings$ KCaloryNeed_G83 + + weighted.mean( G84 ,Weight)*Settings$ KCaloryNeed_G84 + + weighted.mean( G85 ,Weight)*Settings$ KCaloryNeed_G85 + + weighted.mean( G86 ,Weight)*Settings$ KCaloryNeed_G86 + + weighted.mean( G87 ,Weight)*Settings$ KCaloryNeed_G87 + + weighted.mean( G88 ,Weight)*Settings$ KCaloryNeed_G88 + + weighted.mean( G89 ,Weight)*Settings$ KCaloryNeed_G89 + + weighted.mean( G90 ,Weight)*Settings$ KCaloryNeed_G90 + + weighted.mean( G91 ,Weight)*Settings$ KCaloryNeed_G91 + + weighted.mean( G92 ,Weight)*Settings$ KCaloryNeed_G92 + + weighted.mean( G93 ,Weight)*Settings$ KCaloryNeed_G93 + + weighted.mean( G94 ,Weight)*Settings$ KCaloryNeed_G94 + + weighted.mean( G95 ,Weight)*Settings$ KCaloryNeed_G95 + + weighted.mean( G96 ,Weight)*Settings$ KCaloryNeed_G96 + + weighted.mean( G97 ,Weight)*Settings$ KCaloryNeed_G97 + + weighted.mean( G98 ,Weight)*Settings$ KCaloryNeed_G98 + + weighted.mean( G99 ,Weight)*Settings$ KCaloryNeed_G99 + + weighted.mean(lactating,Weight)*(Settings$KCaloryNeed_lactating)] + + + + P1[, BA0 :=ifelse( Age== 0 & Sex=="Male" ,1 ,0)] + P1[, BA1 :=ifelse( Age== 1 & Sex=="Male" ,1 ,0)] + P1[, BA2 :=ifelse( Age== 2 & Sex=="Male" ,1 ,0)] + P1[, BA3 :=ifelse( Age== 3 & Sex=="Male" ,1 ,0)] + P1[, BA4 :=ifelse( Age== 4 & Sex=="Male" ,1 ,0)] + P1[, BA5 :=ifelse( Age== 5 & Sex=="Male" ,1 ,0)] + P1[, BA6 :=ifelse( Age== 6 & Sex=="Male" ,1 ,0)] + P1[, BA7 :=ifelse( Age== 7 & Sex=="Male" ,1 ,0)] + P1[, BA8 :=ifelse( Age== 8 & Sex=="Male" ,1 ,0)] + P1[, BA9 :=ifelse( Age== 9 & Sex=="Male" ,1 ,0)] + P1[, BA10 :=ifelse( Age== 10 & Sex=="Male" ,1 ,0)] + P1[, BA11 :=ifelse( Age== 11 & Sex=="Male" ,1 ,0)] + P1[, BA12 :=ifelse( Age== 12 & Sex=="Male" ,1 ,0)] + P1[, BA13 :=ifelse( Age== 13 & Sex=="Male" ,1 ,0)] + P1[, BA14 :=ifelse( Age== 14 & Sex=="Male" ,1 ,0)] + P1[, BA15 :=ifelse( Age== 15 & Sex=="Male" ,1 ,0)] + P1[, BA16 :=ifelse( Age== 16 & Sex=="Male" ,1 ,0)] + P1[, BA17 :=ifelse( Age== 17 & Sex=="Male" ,1 ,0)] + P1[, BA18 :=ifelse( Age== 18 & Sex=="Male" ,1 ,0)] + P1[, BA19 :=ifelse( Age== 19 & Sex=="Male" ,1 ,0)] + P1[, BA20 :=ifelse( Age== 20 & Sex=="Male" ,1 ,0)] + P1[, BA21 :=ifelse( Age== 21 & Sex=="Male" ,1 ,0)] + P1[, BA22 :=ifelse( Age== 22 & Sex=="Male" ,1 ,0)] + P1[, BA23 :=ifelse( Age== 23 & Sex=="Male" ,1 ,0)] + P1[, BA24 :=ifelse( Age== 24 & Sex=="Male" ,1 ,0)] + P1[, BA25 :=ifelse( Age== 25 & Sex=="Male" ,1 ,0)] + P1[, BA26 :=ifelse( Age== 26 & Sex=="Male" ,1 ,0)] + P1[, BA27 :=ifelse( Age== 27 & Sex=="Male" ,1 ,0)] + P1[, BA28 :=ifelse( Age== 28 & Sex=="Male" ,1 ,0)] + P1[, BA29 :=ifelse( Age== 29 & Sex=="Male" ,1 ,0)] + P1[, BA30 :=ifelse( Age== 30 & Sex=="Male" ,1 ,0)] + P1[, BA31 :=ifelse( Age== 31 & Sex=="Male" ,1 ,0)] + P1[, BA32 :=ifelse( Age== 32 & Sex=="Male" ,1 ,0)] + P1[, BA33 :=ifelse( Age== 33 & Sex=="Male" ,1 ,0)] + P1[, BA34 :=ifelse( Age== 34 & Sex=="Male" ,1 ,0)] + P1[, BA35 :=ifelse( Age== 35 & Sex=="Male" ,1 ,0)] + P1[, BA36 :=ifelse( Age== 36 & Sex=="Male" ,1 ,0)] + P1[, BA37 :=ifelse( Age== 37 & Sex=="Male" ,1 ,0)] + P1[, BA38 :=ifelse( Age== 38 & Sex=="Male" ,1 ,0)] + P1[, BA39 :=ifelse( Age== 39 & Sex=="Male" ,1 ,0)] + P1[, BA40 :=ifelse( Age== 40 & Sex=="Male" ,1 ,0)] + P1[, BA41 :=ifelse( Age== 41 & Sex=="Male" ,1 ,0)] + P1[, BA42 :=ifelse( Age== 42 & Sex=="Male" ,1 ,0)] + P1[, BA43 :=ifelse( Age== 43 & Sex=="Male" ,1 ,0)] + P1[, BA44 :=ifelse( Age== 44 & Sex=="Male" ,1 ,0)] + P1[, BA45 :=ifelse( Age== 45 & Sex=="Male" ,1 ,0)] + P1[, BA46 :=ifelse( Age== 46 & Sex=="Male" ,1 ,0)] + P1[, BA47 :=ifelse( Age== 47 & Sex=="Male" ,1 ,0)] + P1[, BA48 :=ifelse( Age== 48 & Sex=="Male" ,1 ,0)] + P1[, BA49 :=ifelse( Age== 49 & Sex=="Male" ,1 ,0)] + P1[, BA50 :=ifelse( Age== 50 & Sex=="Male" ,1 ,0)] + P1[, BA51 :=ifelse( Age== 51 & Sex=="Male" ,1 ,0)] + P1[, BA52 :=ifelse( Age== 52 & Sex=="Male" ,1 ,0)] + P1[, BA53 :=ifelse( Age== 53 & Sex=="Male" ,1 ,0)] + P1[, BA54 :=ifelse( Age== 54 & Sex=="Male" ,1 ,0)] + P1[, BA55 :=ifelse( Age== 55 & Sex=="Male" ,1 ,0)] + P1[, BA56 :=ifelse( Age== 56 & Sex=="Male" ,1 ,0)] + P1[, BA57 :=ifelse( Age== 57 & Sex=="Male" ,1 ,0)] + P1[, BA58 :=ifelse( Age== 58 & Sex=="Male" ,1 ,0)] + P1[, BA59 :=ifelse( Age== 59 & Sex=="Male" ,1 ,0)] + P1[, BA60 :=ifelse( Age== 60 & Sex=="Male" ,1 ,0)] + P1[, BA61 :=ifelse( Age== 61 & Sex=="Male" ,1 ,0)] + P1[, BA62 :=ifelse( Age== 62 & Sex=="Male" ,1 ,0)] + P1[, BA63 :=ifelse( Age== 63 & Sex=="Male" ,1 ,0)] + P1[, BA64 :=ifelse( Age== 64 & Sex=="Male" ,1 ,0)] + P1[, BA65 :=ifelse( Age== 65 & Sex=="Male" ,1 ,0)] + P1[, BA66 :=ifelse( Age== 66 & Sex=="Male" ,1 ,0)] + P1[, BA67 :=ifelse( Age== 67 & Sex=="Male" ,1 ,0)] + P1[, BA68 :=ifelse( Age== 68 & Sex=="Male" ,1 ,0)] + P1[, BA69 :=ifelse( Age== 69 & Sex=="Male" ,1 ,0)] + P1[, BA70 :=ifelse( Age== 70 & Sex=="Male" ,1 ,0)] + P1[, BA71 :=ifelse( Age== 71 & Sex=="Male" ,1 ,0)] + P1[, BA72 :=ifelse( Age== 72 & Sex=="Male" ,1 ,0)] + P1[, BA73 :=ifelse( Age== 73 & Sex=="Male" ,1 ,0)] + P1[, BA74 :=ifelse( Age== 74 & Sex=="Male" ,1 ,0)] + P1[, BA75 :=ifelse( Age== 75 & Sex=="Male" ,1 ,0)] + P1[, BA76 :=ifelse( Age== 76 & Sex=="Male" ,1 ,0)] + P1[, BA77 :=ifelse( Age== 77 & Sex=="Male" ,1 ,0)] + P1[, BA78 :=ifelse( Age== 78 & Sex=="Male" ,1 ,0)] + P1[, BA79 :=ifelse( Age== 79 & Sex=="Male" ,1 ,0)] + P1[, BA80 :=ifelse( Age== 80 & Sex=="Male" ,1 ,0)] + P1[, BA81 :=ifelse( Age== 81 & Sex=="Male" ,1 ,0)] + P1[, BA82 :=ifelse( Age== 82 & Sex=="Male" ,1 ,0)] + P1[, BA83 :=ifelse( Age== 83 & Sex=="Male" ,1 ,0)] + P1[, BA84 :=ifelse( Age== 84 & Sex=="Male" ,1 ,0)] + P1[, BA85 :=ifelse( Age== 85 & Sex=="Male" ,1 ,0)] + P1[, BA86 :=ifelse( Age== 86 & Sex=="Male" ,1 ,0)] + P1[, BA87 :=ifelse( Age== 87 & Sex=="Male" ,1 ,0)] + P1[, BA88 :=ifelse( Age== 88 & Sex=="Male" ,1 ,0)] + P1[, BA89 :=ifelse( Age== 89 & Sex=="Male" ,1 ,0)] + P1[, BA90 :=ifelse( Age== 90 & Sex=="Male" ,1 ,0)] + P1[, BA91 :=ifelse( Age== 91 & Sex=="Male" ,1 ,0)] + P1[, BA92 :=ifelse( Age== 92 & Sex=="Male" ,1 ,0)] + P1[, BA93 :=ifelse( Age== 93 & Sex=="Male" ,1 ,0)] + P1[, BA94 :=ifelse( Age== 94 & Sex=="Male" ,1 ,0)] + P1[, BA95 :=ifelse( Age== 95 & Sex=="Male" ,1 ,0)] + P1[, BA96 :=ifelse( Age== 96 & Sex=="Male" ,1 ,0)] + P1[, BA97 :=ifelse( Age== 97 & Sex=="Male" ,1 ,0)] + P1[, BA98 :=ifelse( Age== 98 & Sex=="Male" ,1 ,0)] + P1[, BA99 :=ifelse( Age== 99 & Sex=="Male" ,1 ,0)] + P1[, GA0 :=ifelse( Age== 0 & Sex=="Female" ,1 ,0)] + P1[, GA1 :=ifelse( Age== 1 & Sex=="Female" ,1 ,0)] + P1[, GA2 :=ifelse( Age== 2 & Sex=="Female" ,1 ,0)] + P1[, GA3 :=ifelse( Age== 3 & Sex=="Female" ,1 ,0)] + P1[, GA4 :=ifelse( Age== 4 & Sex=="Female" ,1 ,0)] + P1[, GA5 :=ifelse( Age== 5 & Sex=="Female" ,1 ,0)] + P1[, GA6 :=ifelse( Age== 6 & Sex=="Female" ,1 ,0)] + P1[, GA7 :=ifelse( Age== 7 & Sex=="Female" ,1 ,0)] + P1[, GA8 :=ifelse( Age== 8 & Sex=="Female" ,1 ,0)] + P1[, GA9 :=ifelse( Age== 9 & Sex=="Female" ,1 ,0)] + P1[, GA10 :=ifelse( Age== 10 & Sex=="Female" ,1 ,0)] + P1[, GA11 :=ifelse( Age== 11 & Sex=="Female" ,1 ,0)] + P1[, GA12 :=ifelse( Age== 12 & Sex=="Female" ,1 ,0)] + P1[, GA13 :=ifelse( Age== 13 & Sex=="Female" ,1 ,0)] + P1[, GA14 :=ifelse( Age== 14 & Sex=="Female" ,1 ,0)] + P1[, GA15 :=ifelse( Age== 15 & Sex=="Female" ,1 ,0)] + P1[, GA16 :=ifelse( Age== 16 & Sex=="Female" ,1 ,0)] + P1[, GA17 :=ifelse( Age== 17 & Sex=="Female" ,1 ,0)] + P1[, GA18 :=ifelse( Age== 18 & Sex=="Female" ,1 ,0)] + P1[, GA19 :=ifelse( Age== 19 & Sex=="Female" ,1 ,0)] + P1[, GA20 :=ifelse( Age== 20 & Sex=="Female" ,1 ,0)] + P1[, GA21 :=ifelse( Age== 21 & Sex=="Female" ,1 ,0)] + P1[, GA22 :=ifelse( Age== 22 & Sex=="Female" ,1 ,0)] + P1[, GA23 :=ifelse( Age== 23 & Sex=="Female" ,1 ,0)] + P1[, GA24 :=ifelse( Age== 24 & Sex=="Female" ,1 ,0)] + P1[, GA25 :=ifelse( Age== 25 & Sex=="Female" ,1 ,0)] + P1[, GA26 :=ifelse( Age== 26 & Sex=="Female" ,1 ,0)] + P1[, GA27 :=ifelse( Age== 27 & Sex=="Female" ,1 ,0)] + P1[, GA28 :=ifelse( Age== 28 & Sex=="Female" ,1 ,0)] + P1[, GA29 :=ifelse( Age== 29 & Sex=="Female" ,1 ,0)] + P1[, GA30 :=ifelse( Age== 30 & Sex=="Female" ,1 ,0)] + P1[, GA31 :=ifelse( Age== 31 & Sex=="Female" ,1 ,0)] + P1[, GA32 :=ifelse( Age== 32 & Sex=="Female" ,1 ,0)] + P1[, GA33 :=ifelse( Age== 33 & Sex=="Female" ,1 ,0)] + P1[, GA34 :=ifelse( Age== 34 & Sex=="Female" ,1 ,0)] + P1[, GA35 :=ifelse( Age== 35 & Sex=="Female" ,1 ,0)] + P1[, GA36 :=ifelse( Age== 36 & Sex=="Female" ,1 ,0)] + P1[, GA37 :=ifelse( Age== 37 & Sex=="Female" ,1 ,0)] + P1[, GA38 :=ifelse( Age== 38 & Sex=="Female" ,1 ,0)] + P1[, GA39 :=ifelse( Age== 39 & Sex=="Female" ,1 ,0)] + P1[, GA40 :=ifelse( Age== 40 & Sex=="Female" ,1 ,0)] + P1[, GA41 :=ifelse( Age== 41 & Sex=="Female" ,1 ,0)] + P1[, GA42 :=ifelse( Age== 42 & Sex=="Female" ,1 ,0)] + P1[, GA43 :=ifelse( Age== 43 & Sex=="Female" ,1 ,0)] + P1[, GA44 :=ifelse( Age== 44 & Sex=="Female" ,1 ,0)] + P1[, GA45 :=ifelse( Age== 45 & Sex=="Female" ,1 ,0)] + P1[, GA46 :=ifelse( Age== 46 & Sex=="Female" ,1 ,0)] + P1[, GA47 :=ifelse( Age== 47 & Sex=="Female" ,1 ,0)] + P1[, GA48 :=ifelse( Age== 48 & Sex=="Female" ,1 ,0)] + P1[, GA49 :=ifelse( Age== 49 & Sex=="Female" ,1 ,0)] + P1[, GA50 :=ifelse( Age== 50 & Sex=="Female" ,1 ,0)] + P1[, GA51 :=ifelse( Age== 51 & Sex=="Female" ,1 ,0)] + P1[, GA52 :=ifelse( Age== 52 & Sex=="Female" ,1 ,0)] + P1[, GA53 :=ifelse( Age== 53 & Sex=="Female" ,1 ,0)] + P1[, GA54 :=ifelse( Age== 54 & Sex=="Female" ,1 ,0)] + P1[, GA55 :=ifelse( Age== 55 & Sex=="Female" ,1 ,0)] + P1[, GA56 :=ifelse( Age== 56 & Sex=="Female" ,1 ,0)] + P1[, GA57 :=ifelse( Age== 57 & Sex=="Female" ,1 ,0)] + P1[, GA58 :=ifelse( Age== 58 & Sex=="Female" ,1 ,0)] + P1[, GA59 :=ifelse( Age== 59 & Sex=="Female" ,1 ,0)] + P1[, GA60 :=ifelse( Age== 60 & Sex=="Female" ,1 ,0)] + P1[, GA61 :=ifelse( Age== 61 & Sex=="Female" ,1 ,0)] + P1[, GA62 :=ifelse( Age== 62 & Sex=="Female" ,1 ,0)] + P1[, GA63 :=ifelse( Age== 63 & Sex=="Female" ,1 ,0)] + P1[, GA64 :=ifelse( Age== 64 & Sex=="Female" ,1 ,0)] + P1[, GA65 :=ifelse( Age== 65 & Sex=="Female" ,1 ,0)] + P1[, GA66 :=ifelse( Age== 66 & Sex=="Female" ,1 ,0)] + P1[, GA67 :=ifelse( Age== 67 & Sex=="Female" ,1 ,0)] + P1[, GA68 :=ifelse( Age== 68 & Sex=="Female" ,1 ,0)] + P1[, GA69 :=ifelse( Age== 69 & Sex=="Female" ,1 ,0)] + P1[, GA70 :=ifelse( Age== 70 & Sex=="Female" ,1 ,0)] + P1[, GA71 :=ifelse( Age== 71 & Sex=="Female" ,1 ,0)] + P1[, GA72 :=ifelse( Age== 72 & Sex=="Female" ,1 ,0)] + P1[, GA73 :=ifelse( Age== 73 & Sex=="Female" ,1 ,0)] + P1[, GA74 :=ifelse( Age== 74 & Sex=="Female" ,1 ,0)] + P1[, GA75 :=ifelse( Age== 75 & Sex=="Female" ,1 ,0)] + P1[, GA76 :=ifelse( Age== 76 & Sex=="Female" ,1 ,0)] + P1[, GA77 :=ifelse( Age== 77 & Sex=="Female" ,1 ,0)] + P1[, GA78 :=ifelse( Age== 78 & Sex=="Female" ,1 ,0)] + P1[, GA79 :=ifelse( Age== 79 & Sex=="Female" ,1 ,0)] + P1[, GA80 :=ifelse( Age== 80 & Sex=="Female" ,1 ,0)] + P1[, GA81 :=ifelse( Age== 81 & Sex=="Female" ,1 ,0)] + P1[, GA82 :=ifelse( Age== 82 & Sex=="Female" ,1 ,0)] + P1[, GA83 :=ifelse( Age== 83 & Sex=="Female" ,1 ,0)] + P1[, GA84 :=ifelse( Age== 84 & Sex=="Female" ,1 ,0)] + P1[, GA85 :=ifelse( Age== 85 & Sex=="Female" ,1 ,0)] + P1[, GA86 :=ifelse( Age== 86 & Sex=="Female" ,1 ,0)] + P1[, GA87 :=ifelse( Age== 87 & Sex=="Female" ,1 ,0)] + P1[, GA88 :=ifelse( Age== 88 & Sex=="Female" ,1 ,0)] + P1[, GA89 :=ifelse( Age== 89 & Sex=="Female" ,1 ,0)] + P1[, GA90 :=ifelse( Age== 90 & Sex=="Female" ,1 ,0)] + P1[, GA91 :=ifelse( Age== 91 & Sex=="Female" ,1 ,0)] + P1[, GA92 :=ifelse( Age== 92 & Sex=="Female" ,1 ,0)] + P1[, GA93 :=ifelse( Age== 93 & Sex=="Female" ,1 ,0)] + P1[, GA94 :=ifelse( Age== 94 & Sex=="Female" ,1 ,0)] + P1[, GA95 :=ifelse( Age== 95 & Sex=="Female" ,1 ,0)] + P1[, GA96 :=ifelse( Age== 96 & Sex=="Female" ,1 ,0)] + P1[, GA97 :=ifelse( Age== 97 & Sex=="Female" ,1 ,0)] + P1[, GA98 :=ifelse( Age== 98 & Sex=="Female" ,1 ,0)] + P1[, GA99 :=ifelse( Age== 99 & Sex=="Female" ,1 ,0)] + + + + P1[,weighted.mean(BA1,Weight)] + P1[,weighted.mean(BA2,Weight)] + P1[,weighted.mean(BA3,Weight)] + P1[,weighted.mean(BA4,Weight)] + P1[,weighted.mean(BA5,Weight)] + P1[,weighted.mean(BA6,Weight)] + P1[,weighted.mean(BA7,Weight)] + P1[,weighted.mean(BA8,Weight)] + P1[,weighted.mean(BA9,Weight)] + P1[,weighted.mean(GA1,Weight)] + P1[,weighted.mean(GA2,Weight)] + P1[,weighted.mean(GA3,Weight)] + P1[,weighted.mean(GA4,Weight)] + P1[,weighted.mean(GA5,Weight)] + P1[,weighted.mean(GA6,Weight)] + P1[,weighted.mean(GA7,Weight)] + P1[,weighted.mean(GA8,Weight)] + P1[,weighted.mean(GA9,Weight)] + + P1<-P1[,Calorie_Need_Anstitoo:= + weighted.mean( BA0 ,Weight)*Settings$ KCaloryNeed_A_B0 + + weighted.mean( BA1 ,Weight)*Settings$ KCaloryNeed_A_B1 + + weighted.mean( BA2 ,Weight)*Settings$ KCaloryNeed_A_B2 + + weighted.mean( BA3 ,Weight)*Settings$ KCaloryNeed_A_B3 + + weighted.mean( BA4 ,Weight)*Settings$ KCaloryNeed_A_B4 + + weighted.mean( BA5 ,Weight)*Settings$ KCaloryNeed_A_B5 + + weighted.mean( BA6 ,Weight)*Settings$ KCaloryNeed_A_B6 + + weighted.mean( BA7 ,Weight)*Settings$ KCaloryNeed_A_B7 + + weighted.mean( BA8 ,Weight)*Settings$ KCaloryNeed_A_B8 + + weighted.mean( BA9 ,Weight)*Settings$ KCaloryNeed_A_B9 + + weighted.mean( BA10 ,Weight)*Settings$ KCaloryNeed_A_B10 + + weighted.mean( BA11 ,Weight)*Settings$ KCaloryNeed_A_B11 + + weighted.mean( BA12 ,Weight)*Settings$ KCaloryNeed_A_B12 + + weighted.mean( BA13 ,Weight)*Settings$ KCaloryNeed_A_B13 + + weighted.mean( BA14 ,Weight)*Settings$ KCaloryNeed_A_B14 + + weighted.mean( BA15 ,Weight)*Settings$ KCaloryNeed_A_B15 + + weighted.mean( BA16 ,Weight)*Settings$ KCaloryNeed_A_B16 + + weighted.mean( BA17 ,Weight)*Settings$ KCaloryNeed_A_B17 + + weighted.mean( BA18 ,Weight)*Settings$ KCaloryNeed_A_B18 + + weighted.mean( BA19 ,Weight)*Settings$ KCaloryNeed_A_B19 + + weighted.mean( BA20 ,Weight)*Settings$ KCaloryNeed_A_B20 + + weighted.mean( BA21 ,Weight)*Settings$ KCaloryNeed_A_B21 + + weighted.mean( BA22 ,Weight)*Settings$ KCaloryNeed_A_B22 + + weighted.mean( BA23 ,Weight)*Settings$ KCaloryNeed_A_B23 + + weighted.mean( BA24 ,Weight)*Settings$ KCaloryNeed_A_B24 + + weighted.mean( BA25 ,Weight)*Settings$ KCaloryNeed_A_B25 + + weighted.mean( BA26 ,Weight)*Settings$ KCaloryNeed_A_B26 + + weighted.mean( BA27 ,Weight)*Settings$ KCaloryNeed_A_B27 + + weighted.mean( BA28 ,Weight)*Settings$ KCaloryNeed_A_B28 + + weighted.mean( BA29 ,Weight)*Settings$ KCaloryNeed_A_B29 + + weighted.mean( BA30 ,Weight)*Settings$ KCaloryNeed_A_B30 + + weighted.mean( BA31 ,Weight)*Settings$ KCaloryNeed_A_B31 + + weighted.mean( BA32 ,Weight)*Settings$ KCaloryNeed_A_B32 + + weighted.mean( BA33 ,Weight)*Settings$ KCaloryNeed_A_B33 + + weighted.mean( BA34 ,Weight)*Settings$ KCaloryNeed_A_B34 + + weighted.mean( BA35 ,Weight)*Settings$ KCaloryNeed_A_B35 + + weighted.mean( BA36 ,Weight)*Settings$ KCaloryNeed_A_B36 + + weighted.mean( BA37 ,Weight)*Settings$ KCaloryNeed_A_B37 + + weighted.mean( BA38 ,Weight)*Settings$ KCaloryNeed_A_B38 + + weighted.mean( BA39 ,Weight)*Settings$ KCaloryNeed_A_B39 + + weighted.mean( BA40 ,Weight)*Settings$ KCaloryNeed_A_B40 + + weighted.mean( BA41 ,Weight)*Settings$ KCaloryNeed_A_B41 + + weighted.mean( BA42 ,Weight)*Settings$ KCaloryNeed_A_B42 + + weighted.mean( BA43 ,Weight)*Settings$ KCaloryNeed_A_B43 + + weighted.mean( BA44 ,Weight)*Settings$ KCaloryNeed_A_B44 + + weighted.mean( BA45 ,Weight)*Settings$ KCaloryNeed_A_B45 + + weighted.mean( BA46 ,Weight)*Settings$ KCaloryNeed_A_B46 + + weighted.mean( BA47 ,Weight)*Settings$ KCaloryNeed_A_B47 + + weighted.mean( BA48 ,Weight)*Settings$ KCaloryNeed_A_B48 + + weighted.mean( BA49 ,Weight)*Settings$ KCaloryNeed_A_B49 + + weighted.mean( BA50 ,Weight)*Settings$ KCaloryNeed_A_B50 + + weighted.mean( BA51 ,Weight)*Settings$ KCaloryNeed_A_B51 + + weighted.mean( BA52 ,Weight)*Settings$ KCaloryNeed_A_B52 + + weighted.mean( BA53 ,Weight)*Settings$ KCaloryNeed_A_B53 + + weighted.mean( BA54 ,Weight)*Settings$ KCaloryNeed_A_B54 + + weighted.mean( BA55 ,Weight)*Settings$ KCaloryNeed_A_B55 + + weighted.mean( BA56 ,Weight)*Settings$ KCaloryNeed_A_B56 + + weighted.mean( BA57 ,Weight)*Settings$ KCaloryNeed_A_B57 + + weighted.mean( BA58 ,Weight)*Settings$ KCaloryNeed_A_B58 + + weighted.mean( BA59 ,Weight)*Settings$ KCaloryNeed_A_B59 + + weighted.mean( BA60 ,Weight)*Settings$ KCaloryNeed_A_B60 + + weighted.mean( BA61 ,Weight)*Settings$ KCaloryNeed_A_B61 + + weighted.mean( BA62 ,Weight)*Settings$ KCaloryNeed_A_B62 + + weighted.mean( BA63 ,Weight)*Settings$ KCaloryNeed_A_B63 + + weighted.mean( BA64 ,Weight)*Settings$ KCaloryNeed_A_B64 + + weighted.mean( BA65 ,Weight)*Settings$ KCaloryNeed_A_B65 + + weighted.mean( BA66 ,Weight)*Settings$ KCaloryNeed_A_B66 + + weighted.mean( BA67 ,Weight)*Settings$ KCaloryNeed_A_B67 + + weighted.mean( BA68 ,Weight)*Settings$ KCaloryNeed_A_B68 + + weighted.mean( BA69 ,Weight)*Settings$ KCaloryNeed_A_B69 + + weighted.mean( BA70 ,Weight)*Settings$ KCaloryNeed_A_B70 + + weighted.mean( BA71 ,Weight)*Settings$ KCaloryNeed_A_B71 + + weighted.mean( BA72 ,Weight)*Settings$ KCaloryNeed_A_B72 + + weighted.mean( BA73 ,Weight)*Settings$ KCaloryNeed_A_B73 + + weighted.mean( BA74 ,Weight)*Settings$ KCaloryNeed_A_B74 + + weighted.mean( BA75 ,Weight)*Settings$ KCaloryNeed_A_B75 + + weighted.mean( BA76 ,Weight)*Settings$ KCaloryNeed_A_B76 + + weighted.mean( BA77 ,Weight)*Settings$ KCaloryNeed_A_B77 + + weighted.mean( BA78 ,Weight)*Settings$ KCaloryNeed_A_B78 + + weighted.mean( BA79 ,Weight)*Settings$ KCaloryNeed_A_B79 + + weighted.mean( BA80 ,Weight)*Settings$ KCaloryNeed_A_B80 + + weighted.mean( BA81 ,Weight)*Settings$ KCaloryNeed_A_B81 + + weighted.mean( BA82 ,Weight)*Settings$ KCaloryNeed_A_B82 + + weighted.mean( BA83 ,Weight)*Settings$ KCaloryNeed_A_B83 + + weighted.mean( BA84 ,Weight)*Settings$ KCaloryNeed_A_B84 + + weighted.mean( BA85 ,Weight)*Settings$ KCaloryNeed_A_B85 + + weighted.mean( BA86 ,Weight)*Settings$ KCaloryNeed_A_B86 + + weighted.mean( BA87 ,Weight)*Settings$ KCaloryNeed_A_B87 + + weighted.mean( BA88 ,Weight)*Settings$ KCaloryNeed_A_B88 + + weighted.mean( BA89 ,Weight)*Settings$ KCaloryNeed_A_B89 + + weighted.mean( BA90 ,Weight)*Settings$ KCaloryNeed_A_B90 + + weighted.mean( BA91 ,Weight)*Settings$ KCaloryNeed_A_B91 + + weighted.mean( BA92 ,Weight)*Settings$ KCaloryNeed_A_B92 + + weighted.mean( BA93 ,Weight)*Settings$ KCaloryNeed_A_B93 + + weighted.mean( BA94 ,Weight)*Settings$ KCaloryNeed_A_B94 + + weighted.mean( BA95 ,Weight)*Settings$ KCaloryNeed_A_B95 + + weighted.mean( BA96 ,Weight)*Settings$ KCaloryNeed_A_B96 + + weighted.mean( BA97 ,Weight)*Settings$ KCaloryNeed_A_B97 + + weighted.mean( BA98 ,Weight)*Settings$ KCaloryNeed_A_B98 + + weighted.mean( BA99 ,Weight)*Settings$ KCaloryNeed_A_B99 + + weighted.mean( GA0 ,Weight)*Settings$ KCaloryNeed_A_G0 + + weighted.mean( GA1 ,Weight)*Settings$ KCaloryNeed_A_G1 + + weighted.mean( GA2 ,Weight)*Settings$ KCaloryNeed_A_G2 + + weighted.mean( GA3 ,Weight)*Settings$ KCaloryNeed_A_G3 + + weighted.mean( GA4 ,Weight)*Settings$ KCaloryNeed_A_G4 + + weighted.mean( GA5 ,Weight)*Settings$ KCaloryNeed_A_G5 + + weighted.mean( GA6 ,Weight)*Settings$ KCaloryNeed_A_G6 + + weighted.mean( GA7 ,Weight)*Settings$ KCaloryNeed_A_G7 + + weighted.mean( GA8 ,Weight)*Settings$ KCaloryNeed_A_G8 + + weighted.mean( GA9 ,Weight)*Settings$ KCaloryNeed_A_G9 + + weighted.mean( GA10 ,Weight)*Settings$ KCaloryNeed_A_G10 + + weighted.mean( GA11 ,Weight)*Settings$ KCaloryNeed_A_G11 + + weighted.mean( GA12 ,Weight)*Settings$ KCaloryNeed_A_G12 + + weighted.mean( GA13 ,Weight)*Settings$ KCaloryNeed_A_G13 + + weighted.mean( GA14 ,Weight)*Settings$ KCaloryNeed_A_G14 + + weighted.mean( GA15 ,Weight)*Settings$ KCaloryNeed_A_G15 + + weighted.mean( GA16 ,Weight)*Settings$ KCaloryNeed_A_G16 + + weighted.mean( GA17 ,Weight)*Settings$ KCaloryNeed_A_G17 + + weighted.mean( GA18 ,Weight)*Settings$ KCaloryNeed_A_G18 + + weighted.mean( GA19 ,Weight)*Settings$ KCaloryNeed_A_G19 + + weighted.mean( GA20 ,Weight)*Settings$ KCaloryNeed_A_G20 + + weighted.mean( GA21 ,Weight)*Settings$ KCaloryNeed_A_G21 + + weighted.mean( GA22 ,Weight)*Settings$ KCaloryNeed_A_G22 + + weighted.mean( GA23 ,Weight)*Settings$ KCaloryNeed_A_G23 + + weighted.mean( GA24 ,Weight)*Settings$ KCaloryNeed_A_G24 + + weighted.mean( GA25 ,Weight)*Settings$ KCaloryNeed_A_G25 + + weighted.mean( GA26 ,Weight)*Settings$ KCaloryNeed_A_G26 + + weighted.mean( GA27 ,Weight)*Settings$ KCaloryNeed_A_G27 + + weighted.mean( GA28 ,Weight)*Settings$ KCaloryNeed_A_G28 + + weighted.mean( GA29 ,Weight)*Settings$ KCaloryNeed_A_G29 + + weighted.mean( GA30 ,Weight)*Settings$ KCaloryNeed_A_G30 + + weighted.mean( GA31 ,Weight)*Settings$ KCaloryNeed_A_G31 + + weighted.mean( GA32 ,Weight)*Settings$ KCaloryNeed_A_G32 + + weighted.mean( GA33 ,Weight)*Settings$ KCaloryNeed_A_G33 + + weighted.mean( GA34 ,Weight)*Settings$ KCaloryNeed_A_G34 + + weighted.mean( GA35 ,Weight)*Settings$ KCaloryNeed_A_G35 + + weighted.mean( GA36 ,Weight)*Settings$ KCaloryNeed_A_G36 + + weighted.mean( GA37 ,Weight)*Settings$ KCaloryNeed_A_G37 + + weighted.mean( GA38 ,Weight)*Settings$ KCaloryNeed_A_G38 + + weighted.mean( GA39 ,Weight)*Settings$ KCaloryNeed_A_G39 + + weighted.mean( GA40 ,Weight)*Settings$ KCaloryNeed_A_G40 + + weighted.mean( GA41 ,Weight)*Settings$ KCaloryNeed_A_G41 + + weighted.mean( GA42 ,Weight)*Settings$ KCaloryNeed_A_G42 + + weighted.mean( GA43 ,Weight)*Settings$ KCaloryNeed_A_G43 + + weighted.mean( GA44 ,Weight)*Settings$ KCaloryNeed_A_G44 + + weighted.mean( GA45 ,Weight)*Settings$ KCaloryNeed_A_G45 + + weighted.mean( GA46 ,Weight)*Settings$ KCaloryNeed_A_G46 + + weighted.mean( GA47 ,Weight)*Settings$ KCaloryNeed_A_G47 + + weighted.mean( GA48 ,Weight)*Settings$ KCaloryNeed_A_G48 + + weighted.mean( GA49 ,Weight)*Settings$ KCaloryNeed_A_G49 + + weighted.mean( GA50 ,Weight)*Settings$ KCaloryNeed_A_G50 + + weighted.mean( GA51 ,Weight)*Settings$ KCaloryNeed_A_G51 + + weighted.mean( GA52 ,Weight)*Settings$ KCaloryNeed_A_G52 + + weighted.mean( GA53 ,Weight)*Settings$ KCaloryNeed_A_G53 + + weighted.mean( GA54 ,Weight)*Settings$ KCaloryNeed_A_G54 + + weighted.mean( GA55 ,Weight)*Settings$ KCaloryNeed_A_G55 + + weighted.mean( GA56 ,Weight)*Settings$ KCaloryNeed_A_G56 + + weighted.mean( GA57 ,Weight)*Settings$ KCaloryNeed_A_G57 + + weighted.mean( GA58 ,Weight)*Settings$ KCaloryNeed_A_G58 + + weighted.mean( GA59 ,Weight)*Settings$ KCaloryNeed_A_G59 + + weighted.mean( GA60 ,Weight)*Settings$ KCaloryNeed_A_G60 + + weighted.mean( GA61 ,Weight)*Settings$ KCaloryNeed_A_G61 + + weighted.mean( GA62 ,Weight)*Settings$ KCaloryNeed_A_G62 + + weighted.mean( GA63 ,Weight)*Settings$ KCaloryNeed_A_G63 + + weighted.mean( GA64 ,Weight)*Settings$ KCaloryNeed_A_G64 + + weighted.mean( GA65 ,Weight)*Settings$ KCaloryNeed_A_G65 + + weighted.mean( GA66 ,Weight)*Settings$ KCaloryNeed_A_G66 + + weighted.mean( GA67 ,Weight)*Settings$ KCaloryNeed_A_G67 + + weighted.mean( GA68 ,Weight)*Settings$ KCaloryNeed_A_G68 + + weighted.mean( GA69 ,Weight)*Settings$ KCaloryNeed_A_G69 + + weighted.mean( GA70 ,Weight)*Settings$ KCaloryNeed_A_G70 + + weighted.mean( GA71 ,Weight)*Settings$ KCaloryNeed_A_G71 + + weighted.mean( GA72 ,Weight)*Settings$ KCaloryNeed_A_G72 + + weighted.mean( GA73 ,Weight)*Settings$ KCaloryNeed_A_G73 + + weighted.mean( GA74 ,Weight)*Settings$ KCaloryNeed_A_G74 + + weighted.mean( GA75 ,Weight)*Settings$ KCaloryNeed_A_G75 + + weighted.mean( GA76 ,Weight)*Settings$ KCaloryNeed_A_G76 + + weighted.mean( GA77 ,Weight)*Settings$ KCaloryNeed_A_G77 + + weighted.mean( GA78 ,Weight)*Settings$ KCaloryNeed_A_G78 + + weighted.mean( GA79 ,Weight)*Settings$ KCaloryNeed_A_G79 + + weighted.mean( GA80 ,Weight)*Settings$ KCaloryNeed_A_G80 + + weighted.mean( GA81 ,Weight)*Settings$ KCaloryNeed_A_G81 + + weighted.mean( GA82 ,Weight)*Settings$ KCaloryNeed_A_G82 + + weighted.mean( GA83 ,Weight)*Settings$ KCaloryNeed_A_G83 + + weighted.mean( GA84 ,Weight)*Settings$ KCaloryNeed_A_G84 + + weighted.mean( GA85 ,Weight)*Settings$ KCaloryNeed_A_G85 + + weighted.mean( GA86 ,Weight)*Settings$ KCaloryNeed_A_G86 + + weighted.mean( GA87 ,Weight)*Settings$ KCaloryNeed_A_G87 + + weighted.mean( GA88 ,Weight)*Settings$ KCaloryNeed_A_G88 + + weighted.mean( GA89 ,Weight)*Settings$ KCaloryNeed_A_G89 + + weighted.mean( GA90 ,Weight)*Settings$ KCaloryNeed_A_G90 + + weighted.mean( GA91 ,Weight)*Settings$ KCaloryNeed_A_G91 + + weighted.mean( GA92 ,Weight)*Settings$ KCaloryNeed_A_G92 + + weighted.mean( GA93 ,Weight)*Settings$ KCaloryNeed_A_G93 + + weighted.mean( GA94 ,Weight)*Settings$ KCaloryNeed_A_G94 + + weighted.mean( GA95 ,Weight)*Settings$ KCaloryNeed_A_G95 + + weighted.mean( GA96 ,Weight)*Settings$ KCaloryNeed_A_G96 + + weighted.mean( GA97 ,Weight)*Settings$ KCaloryNeed_A_G97 + + weighted.mean( GA98 ,Weight)*Settings$ KCaloryNeed_A_G98 + + weighted.mean( GA99 ,Weight)*Settings$ KCaloryNeed_A_G99 + + weighted.mean(lactating,Weight)*Settings$KCaloryNeed_lactating] + + cat(P1[,mean(Calorie_Need_WorldBank)],"\n") + cat(P1[,mean(Calorie_Need_Anstitoo)],"\n") + + Calorie_Need<-P1[,.(Calorie_Need_WorldBank=mean(Calorie_Need_WorldBank), + Calorie_Need_Anstitoo=mean(Calorie_Need_Anstitoo)),by="HHID"] + + save(P1,file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + save(Calorie_Need,file=paste0(Settings$HEISProcessedPath,"Y",year,"Calorie_Need.rda")) +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Durables Depreciation mixed codes.R b/R/Archive/June 2020 (removed code files)/Durables Depreciation mixed codes.R new file mode 100644 index 00000000..eadbff21 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Durables Depreciation mixed codes.R @@ -0,0 +1,602 @@ +# 142-Durables Depreciation.R +# Builds the House Properties data.table for households +# +# Copyright © 2019:Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Durables Depreciation =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(foreign) +library(data.table) +library(stringr) +library(readxl) +library(ggplot2) +library(spatstat) +library(scales) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"TotalDurable.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights<-HHWeights[,HHID:=as.numeric(HHID)] + HHHouseProperties<-merge(HHHouseProperties,HHWeights) + HHHouseProperties<-merge(HHHouseProperties,HHBase) + HHHouseProperties<-merge(HHHouseProperties,MD[,.(HHID,Decile,FinalPoor,Total_Exp_Month,cluster3)]) + HHHouseProperties<-merge(HHHouseProperties,TotalDurable) + + X <- HHHouseProperties[,.(Auto=weighted.mean(Auto1_Irani>0 | Auto2_rani>0 | + Auto1_Khareji>0 | Auto2_Khareji>0 ,Weight), + Mobile=weighted.mean(Mobile>0,Weight), + Refrigerator=weighted.mean(Yakhchal>0 | freezer2>0,Weight), + TV=weighted.mean(TV_Rangi_Irani>0 | + TV_Rangi_Khareji>0,Weight))] + X[,Year:=year] + Table <- rbind(Table,X) + + HHHouseProperties[,weighted.mean(car=="True",Weight)] + HHHouseProperties[,weighted.mean(Auto1_Irani>0 | Auto2_rani>0 | + Auto1_Khareji>0 | Auto2_Khareji>0 ,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(car=="True",Weight), + # Buy=weighted.mean(Auto1_Irani>0 | Auto2_rani>0 | + # Auto1_Khareji>0 | Auto2_Khareji>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + HHHouseProperties[,weighted.mean(motorcycle=="True",Weight)] + HHHouseProperties[,weighted.mean(Motor>0 ,Weight)] + + + HHHouseProperties[,weighted.mean(bike=="True",Weight)] + HHHouseProperties[,weighted.mean(Bycycle>0 ,Weight)] + + HHHouseProperties[,weighted.mean(radio=="True",Weight)] + HHHouseProperties[,weighted.mean(cassette=="True",Weight)] + HHHouseProperties[,weighted.mean(Zabtesot>0 ,Weight)] + + + HHHouseProperties[,weighted.mean(tvbw=="True",Weight)] + HHHouseProperties[,weighted.mean(TV_SS>0 ,Weight)] + + + + HHHouseProperties[,weighted.mean(tvcr=="True",Weight)] + HHHouseProperties[,weighted.mean(TV_Rangi_Irani>0 | + TV_Rangi_Khareji>0 ,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(tvcr=="True",Weight), + # Buy=weighted.mean(TV_Rangi_Irani>0 | + # TV_Rangi_Khareji>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + HHHouseProperties[,weighted.mean(vcr=="True",Weight)] + HHHouseProperties[,weighted.mean(Video_Player>0 ,Weight)] + + HHHouseProperties[,weighted.mean(computer=="True",Weight)] + HHHouseProperties[,weighted.mean(PC>0 ,Weight)] + + HHHouseProperties[,weighted.mean(cellphone=="True",Weight)] + HHHouseProperties[,weighted.mean(Mobile>0 ,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(cellphone=="True",Weight), + # Buy=weighted.mean(Mobile>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + # X1 <- HHHouseProperties[,.(Use=weighted.mean(cooler_gas=="True",Weight), + # Buy=weighted.mean(Cooler_Gaz>0 ,Weight))] + # X1[,share:=Use/Buy] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + # X1 <- HHHouseProperties[,.(Use=weighted.mean(computer=="True",Weight), + # Buy=weighted.mean(PC>0 ,Weight))] + # X1[,share:=Use/Buy] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + X1 <- HHHouseProperties[,.(Use=weighted.mean(car=="True",Weight), + Buy=weighted.mean(Tamirat_Asasi>0 ,Weight))] + X1[,share:=Use/Buy] + X1[,Year:=year] + Dep <- rbind(Dep,X1) + + HHHouseProperties[,weighted.mean(freezer=="True",Weight)] + HHHouseProperties[,weighted.mean(frez_refrig=="True",Weight)] + HHHouseProperties[,weighted.mean(freezer2>0 ,Weight)] + + HHHouseProperties[,weighted.mean(refrigerator=="True",Weight)] + HHHouseProperties[,weighted.mean(Yakhchal>0 ,Weight)] + + # X1 <- HHHouseProperties[,.(Use=weighted.mean(freezer=="True" | + # refrigerator=="True" | + # frez_refrig=="True",Weight), + # Buy=weighted.mean(freezer2>0 | + # Yakhchal>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + HHHouseProperties[,weighted.mean(oven=="True",Weight)] + # HHHouseProperties[,weighted.mean(Microwave=="True",Weight)] + HHHouseProperties[,weighted.mean(OjaghGaz>0 ,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(oven=="True" ,Weight), + # Buy=weighted.mean(OjaghGaz>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + HHHouseProperties[,weighted.mean(vacuum=="True",Weight)] + HHHouseProperties[,weighted.mean(Jaroobarghi>0 ,Weight)] + + HHHouseProperties[,weighted.mean(washer=="True",Weight)] + HHHouseProperties[,weighted.mean(dishwasher=="True",Weight)] + HHHouseProperties[,weighted.mean(Mashin_Lebasshooyi>0,Weight)] + # X1 <- HHHouseProperties[,.(Use=weighted.mean(washer=="True" | + # dishwasher=="True",Weight), + # Buy=weighted.mean(Mashin_Lebasshooyi>0 ,Weight))] + # X1[,Year:=year] + # Dep <- rbind(Dep,X1) + + HHHouseProperties[,weighted.mean(sewing=="True",Weight)] + HHHouseProperties[,weighted.mean(Charkh_Khayati>0,Weight)] + + HHHouseProperties[,weighted.mean(fan=="True",Weight)] + HHHouseProperties[,weighted.mean(cooler_water_movable=="True",Weight)] + HHHouseProperties[,weighted.mean(Panke>0 ,Weight)] + + HHHouseProperties[,weighted.mean(cooler_gas_movable=="True",Weight)] + HHHouseProperties[,weighted.mean(Cooler_Gaz>0,Weight)] + + load(file = "durable.rda") + ggplot(durable)+ + geom_line(mapping = aes(x=Year,y=Ratio,col=factor(Type))) + ylim(0,0.13) + + HHHouseProperties[Auto1_Khareji>0,weighted.mean(Auto1_Khareji,Weight),by=.(Region,ProvinceCode)] + HHHouseProperties[Auto1_Khareji>0,weighted.median(Auto1_Khareji,Weight),by=.(Region,ProvinceCode)] + + #Auto + HHHouseProperties[,Number:=.N,by=.(Region,ProvinceName)] + Auto<-HHHouseProperties[Auto1_Irani>0 | Auto2_rani>0 | + Auto1_Khareji>0 | Auto2_Khareji>0, + .(.N,Number=mean(Number)),by=.(Region,ProvinceName)] + Auto[,Ratio:=N/Number] + + + ggplot(Auto, aes(fill=factor(Region), y=Ratio, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + HHHouseProperties[,Number:=.N,by=.(Region,Decile)] + Auto<-HHHouseProperties[Auto1_Irani>0 | Auto2_rani>0 | + Auto1_Khareji>0 | Auto2_Khareji>0, + .(.N,Number=mean(Number)),by=.(Region,Decile)] + Auto[,Auto_Ratio:=N/Number] + + ggplot(Auto, aes(fill=factor(Region), y=Auto_Ratio, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + #Mobile + HHHouseProperties[,Number:=.N,by=.(Region,ProvinceName)] + Mobile<-HHHouseProperties[Mobile>0, + .(.N,Number=mean(Number)),by=.(Region,ProvinceName)] + Mobile[,Mobile_Ratio:=N/Number] + + ggplot(Mobile, aes(fill=factor(Region), y=Mobile_Ratio, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + HHHouseProperties[,Number:=.N,by=.(Region,Decile)] + Mobile<-HHHouseProperties[Mobile>0, + .(.N,Number=mean(Number)),by=.(Region,Decile)] + Mobile[,Mobile_Ratio:=N/Number] + + ggplot(Mobile, aes(fill=factor(Region), y=Mobile_Ratio, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + #Yakhchal + HHHouseProperties[,Number:=.N,by=.(Region,ProvinceName)] + Yakhchal<-HHHouseProperties[Yakhchal>0 | freezer2>0, + .(.N,Number=mean(Number)),by=.(Region,ProvinceName)] + Yakhchal[,Yakhchal_Ratio:=N/Number] + + ggplot(Yakhchal, aes(fill=factor(Region), y=Yakhchal_Ratio, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + HHHouseProperties[,Number:=.N,by=.(Region,Decile)] + Yakhchal<-HHHouseProperties[Yakhchal>0 | freezer2>0, + .(.N,Number=mean(Number)),by=.(Region,Decile)] + Yakhchal[,Yakhchal_Ratio:=N/Number] + + ggplot(Yakhchal, aes(fill=factor(Region), y=Yakhchal_Ratio, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + #TV + HHHouseProperties[,Number:=.N,by=.(Region,ProvinceName)] + TV<-HHHouseProperties[TV_Rangi_Irani>0 | + TV_Rangi_Khareji>0, + .(.N,Number=mean(Number)),by=.(Region,ProvinceName)] + TV[,TV_Ratio:=N/Number] + + ggplot(TV, aes(fill=factor(Region), y=TV_Ratio, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + HHHouseProperties[,Number:=.N,by=.(Region,Decile)] + TV<-HHHouseProperties[TV_Rangi_Irani>0 |TV_Rangi_Khareji>0, + .(.N,Number=mean(Number)),by=.(Region,Decile)] + TV[,TV_Ratio:=N/Number] + + ggplot(TV, aes(fill=factor(Region), y=TV_Ratio, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + #########################Exp############################# + #Auto + HHHouseProperties[,Number:=.N,by=.(Region,ProvinceName)] + Auto<-HHHouseProperties[Auto1_Irani>0 | Auto2_rani>0 | + Auto1_Khareji>0 | Auto2_Khareji>0, + .(.N,Auto_Exp=weighted.mean(Auto1_Irani+Auto2_rani+ + Auto1_Khareji+Auto2_Khareji,Weight), + Auto_Exp2=weighted.median(Auto1_Irani+Auto2_rani+ + Auto1_Khareji+Auto2_Khareji,Weight)), + by=.(Region,ProvinceName)] + + Auto<-Auto[,Mean_Median:=Auto_Exp-Auto_Exp2] + + ggplot(Auto, aes(fill=factor(Region), y=Auto_Exp, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Auto, aes(fill=factor(Region), y=Auto_Exp2, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Auto, aes(fill=factor(Region), y=Mean_Median, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + HHHouseProperties[,Number:=.N,by=.(Region,Decile)] + Auto<-HHHouseProperties[Auto1_Irani>0 | Auto2_rani>0 | + Auto1_Khareji>0 | Auto2_Khareji>0, + .(.N,Auto_Exp=weighted.mean(Auto1_Irani+Auto2_rani+ + Auto1_Khareji+Auto2_Khareji,Weight), + Auto_Exp2=weighted.median(Auto1_Irani+Auto2_rani+ + Auto1_Khareji+Auto2_Khareji,Weight)), + by=.(Region,Decile)] + Auto<-Auto[,Mean_Median:=Auto_Exp-Auto_Exp2] + + ggplot(Auto, aes(fill=factor(Region), y=Auto_Exp, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Auto, aes(fill=factor(Region), y=Auto_Exp2, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Auto, aes(fill=factor(Region), y=Mean_Median, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + #Mobile + HHHouseProperties[,Number:=.N,by=.(Region,ProvinceName)] + Mobile<-HHHouseProperties[Mobile>0 , + .(.N,Mobile_Exp=weighted.mean(Mobile,Weight), + Mobile_Exp2=weighted.median(Mobile,Weight)), + by=.(Region,ProvinceName)] + + Mobile<-Mobile[,Mean_Median:=Mobile_Exp-Mobile_Exp2] + + ggplot(Mobile, aes(fill=factor(Region), y=Mobile_Exp, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Mobile, aes(fill=factor(Region), y=Mobile_Exp2, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Mobile, aes(fill=factor(Region), y=Mean_Median, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + HHHouseProperties[,Number:=.N,by=.(Region,Decile)] + Mobile<-HHHouseProperties[Mobile>0 , + .(.N,Mobile_Exp=weighted.mean(Mobile,Weight), + Mobile_Exp2=weighted.median(Mobile,Weight)), + by=.(Region,Decile)] + Mobile<-Mobile[,Mean_Median:=Mobile_Exp-Mobile_Exp2] + + ggplot(Mobile, aes(fill=factor(Region), y=Mobile_Exp, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Mobile, aes(fill=factor(Region), y=Mobile_Exp2, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Mobile, aes(fill=factor(Region), y=Mean_Median, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + #Yakhchal + HHHouseProperties[,Number:=.N,by=.(Region,ProvinceName)] + Yakhchal<-HHHouseProperties[Yakhchal>0 | freezer2>0 , + .(.N,Yakhchal_Exp=weighted.mean(Yakhchal+freezer2,Weight), + Yakhchal_Exp2=weighted.median(Yakhchal+freezer2,Weight)), + by=.(Region,ProvinceName)] + + Yakhchal<-Yakhchal[,Mean_Median:=Yakhchal_Exp-Yakhchal_Exp2] + + ggplot(Yakhchal, aes(fill=factor(Region), y=Yakhchal_Exp, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Yakhchal, aes(fill=factor(Region), y=Yakhchal_Exp2, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Yakhchal, aes(fill=factor(Region), y=Mean_Median, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + HHHouseProperties[,Number:=.N,by=.(Region,Decile)] + Yakhchal<-HHHouseProperties[Yakhchal>0 | freezer2>0 , + .(.N,Yakhchal_Exp=weighted.mean(Yakhchal+freezer2,Weight), + Yakhchal_Exp2=weighted.median(Yakhchal+freezer2,Weight)), + by=.(Region,Decile)] + Yakhchal<-Yakhchal[,Mean_Median:=Yakhchal_Exp-Yakhchal_Exp2] + + ggplot(Yakhchal, aes(fill=factor(Region), y=Yakhchal_Exp, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Yakhchal, aes(fill=factor(Region), y=Yakhchal_Exp2, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(Yakhchal, aes(fill=factor(Region), y=Mean_Median, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + #TV + HHHouseProperties[,Number:=.N,by=.(Region,ProvinceName)] + TV<-HHHouseProperties[TV_Rangi_Irani>0 | + TV_Rangi_Khareji>0 , + .(.N,TV_Exp=weighted.mean(TV_Rangi_Irani+TV_Rangi_Khareji,Weight), + TV_Exp2=weighted.median(TV_Rangi_Irani+TV_Rangi_Khareji,Weight)), + by=.(Region,ProvinceName)] + + TV<-TV[,Mean_Median:=TV_Exp-TV_Exp2] + + ggplot(TV, aes(fill=factor(Region), y=TV_Exp, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(TV, aes(fill=factor(Region), y=TV_Exp2, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(TV, aes(fill=factor(Region), y=Mean_Median, x=factor(ProvinceName))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + HHHouseProperties[,Number:=.N,by=.(Region,Decile)] + TV<-HHHouseProperties[TV_Rangi_Irani>0 | + TV_Rangi_Khareji>0 , + .(.N,TV_Exp=weighted.mean(TV_Rangi_Irani+TV_Rangi_Khareji,Weight), + TV_Exp2=weighted.median(TV_Rangi_Irani+TV_Rangi_Khareji,Weight)), + by=.(Region,Decile)] + TV<-TV[,Mean_Median:=TV_Exp-TV_Exp2] + + ggplot(TV, aes(fill=factor(Region), y=TV_Exp, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(TV, aes(fill=factor(Region), y=TV_Exp2, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + ggplot(TV, aes(fill=factor(Region), y=Mean_Median, x=factor(Decile))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + + + MM_Buyers<-HHHouseProperties[Mobile>0,.(Mobile_Buyers=weighted.mean(Mobile,Weight)),by=.(cluster3)] + M_Holders<-HHHouseProperties[,.(Mobile_Holders=weighted.mean(cellphone=="True",Weight)),by=.(cluster3)] + M_All<-HHHouseProperties[,.(All=weighted.mean(Mobile,Weight)),by=.(cluster3)] + + Y <- HHHouseProperties[Mobile>0,.(Mobile_Buyers_Exp=weighted.mean(Mobile,Weight)),by=.(cluster3)] + Y[,Year:=year] + M_Buyers <- rbind(M_Buyers,Y) + + M<-merge(MM_Buyers,M_Holders) + M<-merge(M,M_All) + + HHHouseProperties[cluster3==1,weighted.mean(Mobile/Total_Exp_Month,Weight,TotalDurable)] + + if (year<97){ + TotalDurable[,G13:=Durable_Exp] + TotalDurable[,Durable_Exp:=NULL] + } + + + # TotalDurable<-merge(TotalDurable,HHHouseProperties[,.(HHID,Decile,Weight)],by="HHID") + # s2 <-TotalDurable[as.numeric(Decile)>1 & as.numeric(Decile)<4, {lapply(.SD, function(x) sum(x*Weight)/sum(G13*Weight))}][] + # s2[,Year:=year] + #Name <- rbind(Name,s2) + + TotalDurable<-merge(TotalDurable,HHHouseProperties[,.(HHID,Weight,Decile)],by="HHID") + X1<-TotalDurable[as.numeric(Decile)>1 & as.numeric(Decile)<4, + .(HHID,Weight,G13,Auto2_rani,Auto1_Irani, + Gardanband_Gold, + Ghali_Mashini,freezer2,Lastik_Mashin, + Mobile,Tamirat_Asasi,Travel_Haj,Mobl, + Mashin_Lebasshooyi,TV_Rangi_Khareji)] + X1<-X1[, {lapply(.SD, function(x) sum(x*Weight)/sum(G13*Weight))}][] + + X1[,Year:=year] + HighShare <- rbind(HighShare,X1) + + + A1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Auto2_rani+Auto1_Khareji+Auto2_Khareji+Auto1_Irani,Weight)] + A2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Auto2_rani>0 | Auto1_Khareji>0 | + Auto2_Khareji>0 | Auto1_Irani>0),weighted.mean(Auto2_rani+Auto1_Khareji+Auto2_Khareji+Auto1_Irani,Weight)] + + B1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(TV_Rangi_Irani+TV_Rangi_Khareji,Weight)] + B2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (TV_Rangi_Irani>0 | TV_Rangi_Khareji>0),weighted.mean(TV_Rangi_Irani+TV_Rangi_Khareji,Weight)] + + C1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(freezer2,Weight)] + C2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (freezer2>0),weighted.mean(freezer2,Weight)] + + D1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(OjaghGaz,Weight)] + D2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (OjaghGaz>0),weighted.mean(OjaghGaz,Weight)] + + E1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Mashin_Lebasshooyi,Weight)] + E2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Mashin_Lebasshooyi>0),weighted.mean(Mashin_Lebasshooyi,Weight)] + + F1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Mobile,Weight)] + F2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Mobile>0),weighted.mean(Mobile,Weight)] + + G1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Cooler_Gaz,Weight)] + G2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Cooler_Gaz>0),weighted.mean(Cooler_Gaz,Weight)] + + H1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(PC,Weight)] + H2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (PC>0),weighted.mean(PC,Weight)] + + I1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Lastik_Mashin,Weight)] + I2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Lastik_Mashin>0),weighted.mean(Lastik_Mashin,Weight)] + + J1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Motor_Machin,Weight)] + J2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Motor_Machin>0),weighted.mean(Motor_Machin,Weight)] + + K1<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4, + weighted.mean(Tamirat_Asasi,Weight)] + K2<- HHHouseProperties[as.numeric(Decile)>1 & as.numeric(Decile)<4 & + (Tamirat_Asasi>0),weighted.mean(Tamirat_Asasi,Weight)] + + Value<-HHHouseProperties[,.(HHID,Auto2_rani,Auto1_Khareji,Auto2_Khareji,Auto1_Irani, + TV_Rangi_Irani,TV_Rangi_Khareji,freezer2,OjaghGaz, + Mashin_Lebasshooyi,Mobile,Cooler_Gaz,PC, + Lastik_Mashin,Motor_Machin,Tamirat_Asasi)] + + save(Value, file=paste0(Settings$HEISProcessedPath,"Y",year,"Value.rda")) + +} + +ggplot(M_Buyers)+ + geom_line(mapping = aes(x=Year,y=Mobile_Buyers_Exp,col=factor(cluster3))) + + +HHHouseProperties[,weighted.mean((Auto1_Irani+Auto2_rani+ + Auto1_Khareji+Auto2_Khareji+ + TV_Rangi_Irani+TV_Rangi_Khareji+ + Mobile+Yakhchal)/G13,Weight,na.rm = TRUE)] + +#HHHouseProperties[,weighted.mean(EducationTExp/G13,na.rm = TRUE)] +####################################################### +m<-HHHouseProperties[,.(.N,Share=weighted.mean(G13/Total_Exp_Month)),by=.(FinalPoor,Region)] +m<-m[,FinalPoor:=ifelse(FinalPoor==1,"Poors","NonPoors")] + +ggplot(m, aes(fill=factor(Region), y=Share, x=factor(FinalPoor))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) +######################################################## + +TotalDurable<-merge(TotalDurable,HHHouseProperties[,.(HHID,Weight,Decile)],by="HHID") +#z1 <-TotalDurable[, {lapply(.SD, function(x) sum(x*Weight)/sum(Weight))}][] +#z2 <-TotalDurable[, {lapply(.SD, function(x) sum(x*Weight)/sum(G13*Weight))}][] + +#write.csv(z1,"z1.csv") +#write.csv(z2,"z2.csv") + +#s1 <-TotalDurable[as.numeric(Decile)>1 & as.numeric(Decile)<4, {lapply(.SD, function(x) sum(x*Weight)/sum(Weight))}][] +#s2 <-TotalDurable[as.numeric(Decile)>1 & as.numeric(Decile)<4, {lapply(.SD, function(x) sum(x*Weight)/sum(G13*Weight))}][] +#s2[,Year:=year] +#Name <- rbind(Name,s2) + +#write.csv(s1,"s1.csv") +#write.csv(s2,"s2.csv") + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Energy groups.R b/R/Archive/June 2020 (removed code files)/Energy groups.R new file mode 100644 index 00000000..8a883676 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Energy groups.R @@ -0,0 +1,238 @@ +# 141-Groups Expenditures.R +# Builds the Groups Expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ NonFood Expenditures =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + +Table1<-data.table(Year=NA_integer_,Sookht_Share=NA_real_,Ab_Share=NA_real_,Barghh_Share=NA_real_)[0] + +Table2<-data.table(Year=NA_integer_,Bargh_Share=NA_real_, + Gaz_Share=NA_real_,Decile=NA_real_,Energy_Share=NA_real_)[0] + + +cat("\n\n================ Energy =====================================\n") + +EnergyTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Energy)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- EnergyTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Energy_Exp")) + TC <- TC[,pcols,with=FALSE] + + if(year %in% 63:82){ + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + } + + if(year %in% 83:97){ + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + TC[,Energy_Exp:=as.numeric(Energy_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + EnergyData <- TC[,lapply(.SD,sum),by=HHID] + save(EnergyData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Energys.rda")) + + + +cat("\n\n================ Barghh =====================================\n") + +BarghhTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Barghh)) + + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- BarghhTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Barghh_Exp")) + TC <- TC[,pcols,with=FALSE] + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + if(year %in% 84:94){ + TC[,Barghh_Exp:=as.numeric(Barghh_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + BarghhData <- TC[,lapply(.SD,sum),by=HHID] + save(BarghhData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Barghhs.rda")) + + + +cat("\n\n================ Sookht =====================================\n") + +SookhtTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Sookht)) + + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- SookhtTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Sookht_Exp")) + TC <- TC[,pcols,with=FALSE] + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + if(year %in% 84:94){ + TC[,Sookht_Exp:=as.numeric(Sookht_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + SookhtData <- TC[,lapply(.SD,sum),by=HHID] + save(SookhtData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Sookhts.rda")) + + + +cat("\n\n================ Ab =====================================\n") + +AbTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Ab)) + + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + mt <- AbTables[Year==year] + tab <- mt$Table + if(is.na(tab)) + next + UTM <- Tables[[paste0("U",year,tab)]] + RTM <- Tables[[paste0("R",year,tab)]] + TM <- rbind(UTM,RTM) + for(n in names(TM)){ + x <- which(mt==n) + if(length(x)>0) + setnames(TM,n,names(mt)[x]) + } + pcols <- intersect(names(TM),c("HHID","Code","Ab_Exp")) + TM <- TM[,pcols,with=FALSE] + if (year<83){ + TM <- TM[Code %in% c(32110,32255)] + } else { + TM <- TM[Code %in% mt$StartCode:mt$EndCode] + } + + if(year %in% 84:96){ + TM[,Ab_Exp:=as.numeric(Ab_Exp)] + } + TM <- TM[Code %in% mt$StartCode:mt$EndCode] + TM[,Code:=NULL] + TM[is.na(TM)] <- 0 + AbData <- TM[,lapply(.SD,sum),by=HHID] + save(AbData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Abs.rda")) + + +cat("\n\n================ Gazz =====================================\n") + +GazzTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Gazz)) + + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + mt <- GazzTables[Year==year] + tab <- mt$Table + if(is.na(tab)) + next + UTM <- Tables[[paste0("U",year,tab)]] + RTM <- Tables[[paste0("R",year,tab)]] + TM <- rbind(UTM,RTM) + for(n in names(TM)){ + x <- which(mt==n) + if(length(x)>0) + setnames(TM,n,names(mt)[x]) + } + pcols <- intersect(names(TM),c("HHID","Code","Gazz_Exp")) + TM <- TM[,pcols,with=FALSE] + TM <- TM[Code %in% mt$StartCode:mt$EndCode] + if(year %in% 84:96){ + TM[,Gazz_Exp:=as.numeric(Gazz_Exp)] + } + TM <- TM[Code %in% mt$StartCode:mt$EndCode] + TM[,Code:=NULL] + TM[is.na(TM)] <- 0 + GazzData <- TM[,lapply(.SD,sum),by=HHID] + save(GazzData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Gazzs.rda")) + + + + + +Data<-merge(EnergyData,SookhtData,all.x=TRUE) +Data<-merge(Data,AbData,all.x=TRUE) +Data<-merge(Data,GazzData,all.x=TRUE) +Data<-merge(Data,BarghhData,all.x=TRUE) +Data[is.na(Data)]<-0 + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoors.rda")) +MD<-merge(MD,Data,all.x=TRUE,by="HHID") +MD[is.na(MD)]<-0 + +Final<-MD[,.(HHID,Weight,Energy_Exp,Sookht_Exp,Ab_Exp,Barghh_Exp, + Gazz_Exp,Total_Exp_Month,Decile)] + +Final[,weighted.mean(Sookht_Exp/Total_Exp_Month,Weight)] +Final[,weighted.mean(Ab_Exp/Total_Exp_Month,Weight)] +Final[,weighted.mean(Barghh_Exp/Total_Exp_Month,Weight)] + +Final[as.numeric(Decile)==1,weighted.mean(Energy_Exp/Total_Exp_Month,Weight)] +Final[as.numeric(Decile)==10,weighted.mean(Energy_Exp/Total_Exp_Month,Weight)] + +T1<-Final[,.(Sookht_Share=weighted.mean(Sookht_Exp/Total_Exp_Month,Weight), + Ab_Share=weighted.mean(Ab_Exp/Total_Exp_Month,Weight), + Barghh_Share=weighted.mean(Barghh_Exp/Total_Exp_Month,Weight))] +T1[,Year:=year] +Table1 <- rbind(Table1,T1) + +Final[,weighted.mean(Barghh_Exp/Total_Exp_Month,Weight),by=Decile][order(Decile)] +Final[,weighted.mean(Gazz_Exp/Total_Exp_Month,Weight),by=Decile][order(Decile)] + +T2<-Final[,.(Bargh_Share=weighted.mean(Barghh_Exp/Total_Exp_Month,Weight), + Gaz_Share=weighted.mean(Gazz_Exp/Total_Exp_Month,Weight), + Energy_Share=weighted.mean(Energy_Exp/Total_Exp_Month,Weight)),by=Decile] +T2[,Year:=year] +Table2 <- rbind(Table2,T2) +write.csv(Table2,"Table2.csv") +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/Engel Method.R b/R/Archive/June 2020 (removed code files)/Engel Method.R new file mode 100644 index 00000000..14d74be3 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Engel Method.R @@ -0,0 +1,53 @@ +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +library(ggplot2) + +cat("\n\n================ FoodGroups =====================================\n") +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Foods2.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + BigFData[,OriginalFoodExpenditure:=Expenditure] + NfoodExp<-BigFData[,.(HHID,OriginalFoodExpenditure)] + NfoodExp <- NfoodExp[,lapply(.SD,sum),by=HHID] + FoodData<-merge(FoodData,NfoodExp,all.x = TRUE) + FoodData[is.na(FoodData)] <- 0 + FoodData[,FoodOtherExpenditure:=FoodExpenditure-OriginalFoodExpenditure] + BigFData<-merge(BigFData,MD[,.(HHID,FinalPoor,cluster3,Total_Exp_Month_Per,ProvinceCode,Percentile,TOriginalFoodExpenditure_Per,Weight,Size,EqSizeCalory)],by=c("HHID")) + Sibzamini<-BigFData[FoodType=="Sibzamini"] + Sibzamini<-as.data.table(Sibzamini[,FGrams_Per:=FGrams/EqSizeCalory]) + sistan<-Sibzamini[ProvinceCode==11] + SibzaminiKol<-Sibzamini[,weighted.mean(FGrams_Per,Weight*Size),by=c("Percentile")] + SibzaminiSistan<-sistan[,weighted.mean(FGrams_Per,Weight*Size),by=c("Percentile")] + Nan<-BigFData[FoodType=="Nan"] + Nan<-as.data.table(Nan[,FGrams_Per:=FGrams/EqSizeCalory]) + sistan<-Nan[ProvinceCode==11] + NanKol<-Nan[,weighted.mean(FGrams_Per,Weight*Size),by=c("Percentile")] + NanSistan<-sistan[,weighted.mean(FGrams_Per,Weight*Size),by=c("Percentile")] + + + Sibzamini<-as.data.table(Sibzamini[,Calory_Per:=FoodKCalories/EqSizeCalory]) + sistan<-Sibzamini[ProvinceCode==11] + SibzaminiKol<-Sibzamini[,weighted.mean(Calory_Per,Weight*Size),by=c("Percentile")] + SibzaminiSistan<-sistan[,weighted.mean(Calory_Per,Weight*Size),by=c("Percentile")] + Nan<-as.data.table(Nan[,Calory_Per:=FoodKCalories/EqSizeCalory]) + sistan<-Nan[ProvinceCode==11] + NanKol<-Nan[,weighted.mean(Calory_Per,Weight*Size),by=c("Percentile")] + NanSistan<-sistan[,weighted.mean(Calory_Per,Weight*Size),by=c("Percentile")] + + ggplot(data=SibzaminiSistan,aes(x=as.factor(Percentile), y=as.integer(V1)))+geom_line(group=1) + + save(FoodData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda")) + cat(FoodData[,mean(OriginalFoodExpenditure)]) +} + +cat("\n\n==============Finish==============\nIt took ") +endtime <- proc.time() +cat((endtime-starttime)[3],"seconds.") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Expenditures by Size.R b/R/Archive/June 2020 (removed code files)/Expenditures by Size.R new file mode 100644 index 00000000..f185b7e4 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Expenditures by Size.R @@ -0,0 +1,57 @@ +#Expenditures by Size.R +# +# Copyright © 2020: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +ExpSize <- data.table(Year=NA_integer_,Size=NA_real_,Total_Exp_Month_nondurable=NA_real_, + OriginalFoodExpenditure=NA_real_,HouseandEnergy_Exp=NA_real_)[0] + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + MD<-MD[Size<6] + MD<-MD[Region=="Urban"] + MD<-MD[as.numeric(Decile)<3 & as.numeric(Decile)>1] + + X1 <- MD[,.(Total_Exp_Month_nondurable=weighted.mean(Total_Exp_Month_nondurable,Weight*Size), + OriginalFoodExpenditure=weighted.mean(OriginalFoodExpenditure,Weight*Size), + HouseandEnergy_Exp=weighted.mean(HouseandEnergy_Exp,Weight*Size)),by=Size] + + X1[,Year:=year] + + ExpSize <- rbind(ExpSize,X1) + +} + +ggplot(MD)+ + geom_line(mapping = aes(x=Year,y=OriginalFoodExpenditure/Total_Exp_Month,col=factor(Size))) + +ggplot(MD, aes(fill=factor(Size), y=OriginalFoodExpenditure/Total_Exp_Month, x=Year)) + + geom_bar(position="dodge", stat="identity") + +ggplot(ExpSize, aes(fill=factor(Size), y=OriginalFoodExpenditure, x=Year)) + + geom_bar(position="dodge", stat="identity") + +ggplot(ExpSize, aes(fill=factor(Size), y=HouseandEnergy_Exp, x=Year)) + + geom_bar(position="dodge", stat="identity") + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/FinanceExp.R b/R/Archive/June 2020 (removed code files)/FinanceExp.R new file mode 100644 index 00000000..3d715dbb --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/FinanceExp.R @@ -0,0 +1,82 @@ + +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + + +cat("\n\n================ HHFinance =====================================\n") +FinanceTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Finance)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- FinanceTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Vam","BuyingMethod","Finance_Exp","Finance_Sale")) + TC <- TC[,pcols,with=FALSE] + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + if(year %in% 84:96){ + TC[,Finance_Exp:=as.numeric(Finance_Exp)] + TC[,Finance_Sale:=as.numeric(Finance_Sale)] + } + TC<-TC[BuyingMethod==1] + TC$Finance_Exp<-TC$Finance_Exp/12 + TC$Finance_Sale<-TC$Finance_Sale/12 + TC[,Code:=NULL] + TC[,BuyingMethod:=NULL] + TC[is.na(TC)] <- 0 + FinanceData <- TC[,lapply(.SD,sum),by=HHID] + save(FinanceData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Finances.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoors.rda")) + + MD<-merge(MD,FinanceData,by="HHID",all.x=TRUE) + MD[is.na(MD)] <- 0 + + MD[,Decile_Pop:=sum(Weight),by=Decile] + MD[Finance_Exp>0,having_vam_Pop:=sum(Weight)] + MD[Finance_Exp>0,having_vam_Pop:=sum(Weight),by=Decile] + MD[,having_vam:=ifelse(Finance_Exp>0,1,0)] + MD[,weighted.mean(having_vam,Weight),by=Decile][order(Decile)] + MD[Finance_Exp>0,weighted.mean(Finance_Exp*12/Total_Exp_Month,Weight),by=Decile][order(Decile)] + + MD[,Y:=sum(Weight*Total_Exp_Month)] + MD[as.numeric(Percentile)>97,X:=sum(Weight*Total_Exp_Month)] + MD[,a:=X/Y] + + MD[,weighted.mean(having_vam,Weight)] + MD[CountyCode==2301,weighted.mean(having_vam,Weight*Size)] + MD[ProvinceCode==23,weighted.mean(having_vam,Weight)] + MD[,weighted.mean(having_vam,Weight),by=ProvinceCode][order(ProvinceCode)] + MD[having_vam==1,sum(Weight),by=ProvinceCode][order(ProvinceCode)] + + MD[Finance_Exp>0,weighted.mean(Finance_Exp*12/Total_Exp_Month,Weight)] + MD[Finance_Exp>0 & CountyCode==2301,weighted.mean(Finance_Exp*12/Total_Exp_Month,Weight)] + + } + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/Food Consumption.R b/R/Archive/June 2020 (removed code files)/Food Consumption.R new file mode 100644 index 00000000..10924487 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Food Consumption.R @@ -0,0 +1,104 @@ +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +library(dplyr) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +#year<-97 + +TS <- data.table(Year=NA_integer_,Berenj=NA_real_, + Gav=NA_real_,Goosfand=NA_real_, + Shir=NA_real_,Panir=NA_real_, + Tokhmemorgh=NA_real_, + Morgh=NA_real_,MacaroniGram=NA_real_, + Rob_GojeGram=NA_real_,PiazGram=NA_real_, + SibzaminiGram=NA_real_, + Decile=NA_real_)[0] + + +for (year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:", year, "\n")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoors.rda")) + +MD<-merge(MD,Total[,.(HHID,`011164`,MacaroniGram,`011231`,`011232`,PoultryMeat_MGram, + PoultryMeat_NMGram,`011411`,MilkGrams,`011428`,`011429`, + Cheese_PasturizedGram,Cheese_NonPasturizedGram, + `011921`,Rob_GojeGram,`011441`,`011442`,Egg_MashinGram, + Egg_NonMashinGram,`011731`,SibzaminiGram, + `011732`,PiazGram,`011211`,`011212`, + CowMeatGram,SheepMeatGram, + Rice_TaromGram,Rice_DomsiahGram)],by="HHID") + +A<-MD[,.(Morgh=weighted.mean(PoultryMeat_MGram,Weight), + Shir= weighted.mean(MilkGrams,Weight), + Panir=weighted.mean(Cheese_PasturizedGram,Weight), + Tokhmemorgh=weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight), + Berenj=weighted.mean(Rice_TaromGram+Rice_DomsiahGram,Weight), + Gav=weighted.mean(CowMeatGram,Weight), + Goosfand=weighted.mean(SheepMeatGram,Weight), + Rob_GojeGram=weighted.mean(Rob_GojeGram,Weight), + SibzaminiGram=weighted.mean(SibzaminiGram,Weight), + PiazGram=weighted.mean(PiazGram,Weight), + MacaroniGram=weighted.mean(MacaroniGram,Weight)),by=Decile][order(Decile)] +A[,Year:=year] +TS <- rbind(TS,A) + + +m<-MD[,.(weighted.mean(`011164`/Total_Exp_Month_nondurable,Weight), + weighted.mean((`011231`+`011232`)/Total_Exp_Month_nondurable,Weight), + weighted.mean(`011411`/Total_Exp_Month_nondurable,Weight), + weighted.mean((`011428`+`011429`)/Total_Exp_Month_nondurable,Weight), + weighted.mean(`011921`/Total_Exp_Month_nondurable,Weight), + weighted.mean((`011441`+`011442`)/Total_Exp_Month_nondurable,Weight), + weighted.mean(`011731`/Total_Exp_Month_nondurable,Weight), + weighted.mean(`011732`/Total_Exp_Month_nondurable,Weight)),by=Decile][order(Decile)] + +z<-MD[,.(weighted.mean(`011164`/FoodExpenditure,Weight), + weighted.mean((`011231`+`011232`)/FoodExpenditure,Weight), + weighted.mean(`011411`/FoodExpenditure,Weight), + weighted.mean((`011428`+`011429`)/FoodExpenditure,Weight), + weighted.mean(`011921`/FoodExpenditure,Weight), + weighted.mean((`011441`+`011442`)/FoodExpenditure,Weight), + weighted.mean(`011731`/FoodExpenditure,Weight), + weighted.mean(`011732`/FoodExpenditure,Weight)),by=Decile][order(Decile)] + +y<-MD[,.(weighted.mean(`011164`,Weight), + weighted.mean(`011231`+`011232`,Weight), + weighted.mean(`011411`,Weight), + weighted.mean(`011428`+`011429`,Weight), + weighted.mean(`011921`,Weight), + weighted.mean(`011441`+`011442`,Weight), + weighted.mean(`011731`,Weight), + weighted.mean(`011732`,Weight)),by=Decile][order(Decile)] + + +x<-MD[,.(MacaroniGram=weighted.mean(MacaroniGram,Weight), + PoultryMeat_Gram=weighted.mean(PoultryMeat_MGram+PoultryMeat_NMGram,Weight), + MilkGrams=weighted.mean(MilkGrams,Weight), + CheeseGram=weighted.mean(Cheese_PasturizedGram+Cheese_NonPasturizedGram,Weight), + Rob_GojeGram=weighted.mean(Rob_GojeGram,Weight), + Egg_Gram=weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight), + SibzaminiGram=weighted.mean(SibzaminiGram,Weight), + PiazGram=weighted.mean(PiazGram,Weight), + CowMeatGram=weighted.mean(CowMeatGram,Weight), + SheepMeatGram=weighted.mean(SheepMeatGram,Weight)),by=Decile][order(Decile)] + +MD[,weighted.mean(Size,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(FoodKCaloriesHH_Per,Weight),by=Decile][order(Decile)] + + + + +} + +#TS<-TS[as.numeric(Decile)<7] + +#ggplot(TS, aes( y=Morgh, x=Year,fill=Decile)) + + # geom_bar(position="dodge", stat="identity") + theme_bw() + + # theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) diff --git a/R/Archive/June 2020 (removed code files)/Foods Expenditue types.R b/R/Archive/June 2020 (removed code files)/Foods Expenditue types.R new file mode 100644 index 00000000..2900df94 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Foods Expenditue types.R @@ -0,0 +1,150 @@ +# Foods Expenditue types.R +# Builds the Food expenditures data.table for households +# +# Copyright © 2020: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(ggplot2) +library(readxl) + +FoodExpShare <- data.table(Year=NA_integer_,Region=NA_integer_,ProvinceCode=NA_real_, + Share1=NA_real_,Share2=NA_real_, + Share3=NA_real_,Share4=NA_real_)[0] + +FoodMethodShare <- data.table(Year=NA_integer_,Method=NA_real_, + Region=NA_character_,share=NA_real_)[0] + +for (year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:", year, "\n")) + load(file = paste0(Settings$HEISProcessedPath, "Y", year, "Merged4CBN.rda")) + load(file = paste0(Settings$HEISProcessedPath, "Y", year, "TF.rda")) + + #TF<-merge(TF,MD[,.(HHID,ProvinceCode,Region,Weight,Size)],all.x = TRUE,by="HHID") + #TF[,isUrban:=ifelse(Region=="Urban",1,0)] + #TF[,Region:=NULL] + #TF2 <- TF[,.(Food_Exp=sum(FoodExpenditure), + # ProvinceCode=mean(ProvinceCode), + # isUrban=mean(isUrban), + # Weight=mean(Weight)),by=.(HHID,BuyingMethod)] + + #TF3<-TF2[,.(.N,Sum=sum(Food_Exp*Weight)),by=.(ProvinceCode,BuyingMethod)] + #TF4<-TF3[BuyingMethod==8] + + G1<-TF[BuyingMethod==1] + G1 <- G1[,lapply(.SD,sum),by=HHID] + G1[,BuyingMethod:=NULL] + names(G1)<-c("HHID","FoodExp1") + + G2<-TF[BuyingMethod==2] + G2 <- G2[,lapply(.SD,sum),by=HHID] + G2[,BuyingMethod:=NULL] + names(G2)<-c("HHID","FoodExp2") + + G3<-TF[BuyingMethod==3] + G3 <- G3[,lapply(.SD,sum),by=HHID] + G3[,BuyingMethod:=NULL] + names(G3)<-c("HHID","FoodExp3") + + G4<-TF[BuyingMethod==4] + G4 <- G4[,lapply(.SD,sum),by=HHID] + G4[,BuyingMethod:=NULL] + names(G4)<-c("HHID","FoodExp4") + + G5<-TF[BuyingMethod==5] + G5 <- G5[,lapply(.SD,sum),by=HHID] + G5[,BuyingMethod:=NULL] + names(G5)<-c("HHID","FoodExp5") + + G6<-TF[BuyingMethod==6] + G6 <- G6[,lapply(.SD,sum),by=HHID] + G6[,BuyingMethod:=NULL] + names(G6)<-c("HHID","FoodExp6") + + G7<-TF[BuyingMethod==7] + G7 <- G7[,lapply(.SD,sum),by=HHID] + G7[,BuyingMethod:=NULL] + names(G7)<-c("HHID","FoodExp7") + + G8<-TF[BuyingMethod==8] + G8 <- G8[,lapply(.SD,sum),by=HHID] + G8[,BuyingMethod:=NULL] + names(G8)<-c("HHID","FoodExp8") + + TTF<-merge(MD[,.(HHID,Region,ProvinceCode,Weight, + Size,EqSizeRevOECD,FoodExpenditure)],G1) + + TTF<-merge(TTF,G2,all.x = TRUE) + TTF<-merge(TTF,G3,all.x = TRUE) + TTF<-merge(TTF,G4,all.x = TRUE) + TTF<-merge(TTF,G5,all.x = TRUE) + TTF<-merge(TTF,G6,all.x = TRUE) + TTF<-merge(TTF,G7,all.x = TRUE) + TTF<-merge(TTF,G8,all.x = TRUE) + TTF[is.na(TTF)] <- 0 + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + TF<-merge(TF,MD[,.(HHID,Decile,FinalPoor,Region,ProvinceCode,Weight)],all.x = TRUE) + TF<-TF[Region=="Urban" | Region=="Rural"] + TF<-TF[ Region=="Urban" & ProvinceCode==11] + if (year>82){ + TF[,Method:=ifelse(BuyingMethod==1,"Buying", + ifelse(BuyingMethod==2,"Home_Production", + ifelse(BuyingMethod==3 | BuyingMethod==4 | + BuyingMethod==5 | BuyingMethod==7,"Against_Service", + ifelse(BuyingMethod==6,"Agriculture","Free"))))] + } + else { + TF[,Method:=ifelse(BuyingMethod==1,"Buying", + ifelse(BuyingMethod==2,"Home_Production", + ifelse(BuyingMethod==3 | BuyingMethod==4 | + BuyingMethod==6 | BuyingMethod==8,"Against_Service", + ifelse(BuyingMethod==5,"Agriculture","Free"))))] + } + + + #TF<-TF[Method!="Buying"] + TF <- TF[,Total:=sum(FoodExpenditure*Weight),by=.(Region)] + TF <- TF[,share:=FoodExpenditure/Total] + X2 <- TF[,.(share=sum(share*Weight)),by=.(Method,Region)] + + + + X2[,Year:=year] + FoodMethodShare <- rbind(FoodMethodShare,X2) + + + TTF<-merge(TTF,MD[,.(HHID,Decile,FinalPoor)],all.x = TRUE) + + TTF[,weighted.mean(FoodExp8/FoodExpenditure),by=ProvinceCode] + + X1 <- TTF[,.(Share1=weighted.mean(FoodExp1/FoodExpenditure), + Share2=weighted.mean(FoodExp2/FoodExpenditure), + Share3=weighted.mean((FoodExp3+FoodExp4+FoodExp5+FoodExp7)/FoodExpenditure), + Share4=weighted.mean(FoodExp6/FoodExpenditure)),by=.(Region,ProvinceCode)] + X1[,Year:=year] + + FoodExpShare <- rbind(FoodExpShare,X1) + #FoodExpShare<-FoodExpShare[ProvinceCode==1] +} + +ggplot(FoodMethodShare, aes(fill=Method, y=share, x=Year)) + + geom_bar(position="stack", stat="identity") + + ggtitle("Types of food preparation") + +ggplot(FoodExpShare)+ + geom_line(mapping = aes(x=Year,y=Share1,col=factor(Region))) + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/Free Durable Goods.R b/R/Archive/June 2020 (removed code files)/Free Durable Goods.R new file mode 100644 index 00000000..42657cf9 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Free Durable Goods.R @@ -0,0 +1,64 @@ +#Free Durable Goods + +rm(list=ls()) + +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + + + +cat("\n\n================ Free Durable Goods=====================================\n") +DurableTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Durable)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- DurableTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","Durable_Exp","Durable_Sale")) + TC <- TC[,pcols,with=FALSE] + TC<-TC[BuyingMethod==8] + if(year %in% 84:97){ + TC[,FreeDurable_Exp:=as.numeric(Durable_Exp)] + TC[,FreeDurable_Sale:=as.numeric(Durable_Sale)] + } + TC$FreeDurable_Exp<-TC$Durable_Exp/12 + TC$FreeDurable_Sale<-TC$Durable_Sale/12 + TC[,Code:=NULL] + TC[,BuyingMethod:=NULL] + TC[is.na(TC)] <- 0 + TC[,FreeDurable_Pure_Exp:=FreeDurable_Exp-FreeDurable_Sale] + FreeDurableData <- TC[,lapply(.SD,sum),by=HHID] + save(FreeDurableData, file = paste0(Settings$HEISProcessedPath,"Y",year,"FreeDurableData.rda")) + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + FreeDurableData<-merge(FreeDurableData,MD[,.(HHID,Region,ProvinceCode)]) + + FreeD<-FreeDurableData[,.(.N),by=ProvinceCode] + + } + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/Goods share in Poors- NonPoors.R b/R/Archive/June 2020 (removed code files)/Goods share in Poors- NonPoors.R new file mode 100644 index 00000000..74ebc72b --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Goods share in Poors- NonPoors.R @@ -0,0 +1,154 @@ +# Goods share in Poors- NonPoors.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Goods share =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +PoorsShareResults <- data.table(Year=NA_integer_,Food_Share=NA_real_,Cigar_Share=NA_real_, + cloth_Share=NA_real_,House_Share=NA_real_,Furniture_Share=NA_real_, + Hygiene_Share=NA_real_,Transportation_Share=NA_real_, + Communication_Share=NA_real_,Amusement_Share=NA_real_, + HotelRestaurant_Share=NA_real_,Other_Share=NA_real_, + Durable_Share=NA_real_,Meter_Price=NA_real_, + cluster3=NA_integer_,FinalPoor=NA_integer_)[0] + +ShareResults <- data.table(Year=NA_integer_,Share=NA_real_,Type=NA_character_, + cluster3=NA_integer_,FinalPoor=NA_integer_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + #MD<-MD[FinalPoor==0] + MD<-MD[Region=="Rural" & NewArea_Name=="Sistan"] + + + + ################Cluster################## + X1 <- MD[,.(Food_Share=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + Cigar_Share=weighted.mean(Cigar_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + cloth_Share=weighted.mean(Cloth_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + House_Share=weighted.mean(HouseandEnergy_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Meter_Price=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + Furniture_Share=weighted.mean(Furniture_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Hygiene_Share=weighted.mean(Hygiene_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Transportation_Share=weighted.mean(Transportation_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Communication_Share=weighted.mean(Communication_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Amusement_Share=weighted.mean(Amusement_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + HotelRestaurant_Share=weighted.mean(HotelRestaurant_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Other_Share=weighted.mean(Other_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Durable_Share=weighted.mean(Durable_Exp/Total_Exp_Month,Weight,na.rm = TRUE)),by=.(cluster3,FinalPoor)] + + X1[,Year:=year] + + PoorsShareResults <- rbind(PoorsShareResults,X1) + + + + X2 <- MD[,.(Share=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Food"),by=.(cluster3,FinalPoor)] + X2[,Year:=year] + ShareResults <- rbind(ShareResults,X2) + + X3 <- MD[,.(Share=weighted.mean(Cigar_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Cigar"),by=.(cluster3,FinalPoor)] + X3[,Year:=year] + ShareResults <- rbind(ShareResults,X3) + + X4 <- MD[,.(Share=weighted.mean(Cloth_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Cloth"),by=.(cluster3,FinalPoor)] + X4[,Year:=year] + ShareResults <- rbind(ShareResults,X4) + + X5 <- MD[,.(Share=weighted.mean(HouseandEnergy_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="HouseandEnergy"),by=.(cluster3,FinalPoor)] + X5[,Year:=year] + ShareResults <- rbind(ShareResults,X5) + + X6 <- MD[,.(Share=weighted.mean(Furniture_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Furniture"),by=.(cluster3,FinalPoor)] + X6[,Year:=year] + ShareResults <- rbind(ShareResults,X6) + + X7 <- MD[,.(Share=weighted.mean(Transportation_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Transportation"),by=.(cluster3,FinalPoor)] + X7[,Year:=year] + ShareResults <- rbind(ShareResults,X7) + + X8 <- MD[,.(Share=weighted.mean(Communication_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Communication"),by=.(cluster3,FinalPoor)] + X8[,Year:=year] + ShareResults <- rbind(ShareResults,X8) + + X9 <- MD[,.(Share=weighted.mean(Amusement_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Amusement"),by=.(cluster3,FinalPoor)] + X9[,Year:=year] + ShareResults <- rbind(ShareResults,X9) + + X10 <- MD[,.(Share=weighted.mean(Hygiene_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Hygiene"),by=.(cluster3,FinalPoor)] + X10[,Year:=year] + ShareResults <- rbind(ShareResults,X10) + + X11 <- MD[,.(Share=weighted.mean(HotelRestaurant_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="HotelRestaurant"),by=.(cluster3,FinalPoor)] + X11[,Year:=year] + ShareResults <- rbind(ShareResults,X11) + + X12 <- MD[,.(Share=weighted.mean(Other_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Other"),by=.(cluster3,FinalPoor)] + X12[,Year:=year] + ShareResults <- rbind(ShareResults,X12) + + X13 <- MD[,.(Share=weighted.mean(Durable_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Durable"),by=.(cluster3,FinalPoor)] + X13[,Year:=year] + ShareResults <- rbind(ShareResults,X13) + + X14 <- MD[,.(Share=weighted.mean(Medical_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Medical"),by=.(cluster3,FinalPoor)] + X14[,Year:=year] + ShareResults <- rbind(ShareResults,X14) +} + +#save(PoorsShareResults,file=paste0(Settings$HEISProcessedPath,"PoorsShareResults.rda")) +#save(ShareResults,file=paste0(Settings$HEISProcessedPath,"ShareResults.rda")) + +ggplot(PoorsShareResults)+ + geom_line(mapping = aes(x=Year,y=Meter_Price,col=factor(cluster3))) + +ShareResults_S2<-ShareResults[Type=="Food" & cluster3==13] +ggplot(ShareResults_S2, aes(fill=factor(FinalPoor), y=Share, x=Year)) + + geom_bar(position="dodge", stat="identity") + +ShareResults_S2<-ShareResults[Type=="HouseandEnergy" & cluster3==13] +ggplot(ShareResults_S2, aes(fill=factor(FinalPoor), y=Share, x=Year)) + + geom_bar(position="dodge", stat="identity") + +ShareResults_S2<-ShareResults[Type=="Durable" & cluster3==13] +ggplot(ShareResults_S2, aes(fill=factor(FinalPoor), y=Share, x=Year)) + + geom_bar(position="dodge", stat="identity") + +#ShareResults7<-ShareResults[cluster3==13] + +#ggplot(ShareResults7, aes(fill=Type, y=Share, x=Year)) + +# geom_bar(position="stack", stat="identity") + +# ggtitle("Goods shares in clusters") + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Goods share.R b/R/Archive/June 2020 (removed code files)/Goods share.R new file mode 100644 index 00000000..e74521ba --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Goods share.R @@ -0,0 +1,145 @@ +# Goods share.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Goods share =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +PoorsShareResults <- data.table(Year=NA_integer_,Food_Share=NA_real_,Cigar_Share=NA_real_, + cloth_Share=NA_real_,House_Share=NA_real_,Furniture_Share=NA_real_, + Hygiene_Share=NA_real_,Transportation_Share=NA_real_, + Communication_Share=NA_real_,Amusement_Share=NA_real_, + HotelRestaurant_Share=NA_real_,Other_Share=NA_real_, + Durable_Share=NA_real_,Meter_Price=NA_real_, + cluster3=NA_integer_)[0] + +ShareResults <- data.table(Year=NA_integer_,Share=NA_real_,Type=NA_character_, + cluster3=NA_integer_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + MD<-MD[FinalPoor==0] + #MD<-MD[Region=="Rural" & NewArea_Name=="Sistan"] + + + + ################Cluster################## + X1 <- MD[,.(Food_Share=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + Cigar_Share=weighted.mean(Cigar_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + cloth_Share=weighted.mean(Cloth_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + House_Share=weighted.mean(HouseandEnergy_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Meter_Price=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + Furniture_Share=weighted.mean(Furniture_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Hygiene_Share=weighted.mean(Hygiene_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Transportation_Share=weighted.mean(Transportation_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Communication_Share=weighted.mean(Communication_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Amusement_Share=weighted.mean(Amusement_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + HotelRestaurant_Share=weighted.mean(HotelRestaurant_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Other_Share=weighted.mean(Other_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Durable_Share=weighted.mean(Durable_Exp/Total_Exp_Month,Weight,na.rm = TRUE)),by=cluster3] + + X1[,Year:=year] + + PoorsShareResults <- rbind(PoorsShareResults,X1) + + + + X2 <- MD[,.(Share=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Food"),by=cluster3] + X2[,Year:=year] + ShareResults <- rbind(ShareResults,X2) + + X3 <- MD[,.(Share=weighted.mean(Cigar_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Cigar"),by=cluster3] + X3[,Year:=year] + ShareResults <- rbind(ShareResults,X3) + + X4 <- MD[,.(Share=weighted.mean(Cloth_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Cloth"),by=cluster3] + X4[,Year:=year] + ShareResults <- rbind(ShareResults,X4) + + X5 <- MD[,.(Share=weighted.mean(HouseandEnergy_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="HouseandEnergy"),by=cluster3] + X5[,Year:=year] + ShareResults <- rbind(ShareResults,X5) + + X6 <- MD[,.(Share=weighted.mean(Furniture_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Furniture"),by=cluster3] + X6[,Year:=year] + ShareResults <- rbind(ShareResults,X6) + + X7 <- MD[,.(Share=weighted.mean(Transportation_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Transportation"),by=cluster3] + X7[,Year:=year] + ShareResults <- rbind(ShareResults,X7) + + X8 <- MD[,.(Share=weighted.mean(Communication_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Communication"),by=cluster3] + X8[,Year:=year] + ShareResults <- rbind(ShareResults,X8) + + X9 <- MD[,.(Share=weighted.mean(Amusement_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Amusement"),by=cluster3] + X9[,Year:=year] + ShareResults <- rbind(ShareResults,X9) + + X10 <- MD[,.(Share=weighted.mean(Hygiene_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Hygiene"),by=cluster3] + X10[,Year:=year] + ShareResults <- rbind(ShareResults,X10) + + X11 <- MD[,.(Share=weighted.mean(HotelRestaurant_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="HotelRestaurant"),by=cluster3] + X11[,Year:=year] + ShareResults <- rbind(ShareResults,X11) + + X12 <- MD[,.(Share=weighted.mean(Other_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Other"),by=cluster3] + X12[,Year:=year] + ShareResults <- rbind(ShareResults,X12) + + X13 <- MD[,.(Share=weighted.mean(Durable_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Durable"),by=cluster3] + X13[,Year:=year] + ShareResults <- rbind(ShareResults,X13) + + X14 <- MD[,.(Share=weighted.mean(Medical_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + Type="Medical"),by=cluster3] + X14[,Year:=year] + ShareResults <- rbind(ShareResults,X14) +} + +save(PoorsShareResults,file=paste0(Settings$HEISProcessedPath,"PoorsShareResults.rda")) +save(ShareResults,file=paste0(Settings$HEISProcessedPath,"ShareResults.rda")) + +ggplot(PoorsShareResults)+ + geom_line(mapping = aes(x=Year,y=Meter_Price,col=factor(cluster3))) + +ggplot(ShareResults, aes(fill=Type, y=Share, x=Year)) + + geom_bar(position="dodge", stat="identity") + +ShareResults7<-ShareResults[cluster3==13] + +ggplot(ShareResults7, aes(fill=Type, y=Share, x=Year)) + + geom_bar(position="stack", stat="identity") + + ggtitle("Goods shares in clusters") + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/High Engle.R b/R/Archive/June 2020 (removed code files)/High Engle.R new file mode 100644 index 00000000..b11077db --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/High Engle.R @@ -0,0 +1,58 @@ +# High Engle.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ High Engle =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + #cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + MD<-MD[,High_Engle:=ifelse(HHEngle>0.5,1,0)] + MD[,weighted.mean(High_Engle,Weight)] + MD[High_Engle==1,.(sum(HIndivNo),sum(FinalPoor)),by=.(Region,NewArea_Name)][order(V1)] + MD[,weighted.mean(High_Engle,Weight),by=.(Region,NewArea_Name)][order(V1)] + MD[High_Engle==1,sum(HIndivNo),by=.(Region,NewArea_Name)][order(V1)] + MD[,sum(HIndivNo),by=.(Region,NewArea_Name)][order(Region)] + + HighEngle<-MD[HHEngle>0.5] + HighEngle[,weighted.mean(FinalPoor,Weight)] + HighEngle[,weighted.mean(FinalPoor,Weight),by=.(Region)][order(V1)] + + HighEngle[,weighted.mean(FinalPoor,Weight),by=.(Region,NewArea_Name)][order(V1)] + + HighEngle[,sum(HIndivNo),by=.(ProvinceCode)][order(V1)] + HighEngle[,weighted.median(Total_Exp_Month_Per_nondurable,Weight),by=.(ProvinceCode)][order(V1)] + HighEngle[,weighted.median(TOriginalFoodExpenditure,Weight),by=.(ProvinceCode)][order(V1)] + + HighEngle[,weighted.median(Total_Exp_Month_nondurable-TOriginalFoodExpenditure,Weight),by=.(ProvinceCode)][order(V1)] + + HighEngle[Region=="Rural" & NewArea_Name=="Sistan",sum(HIndivNo),by=.(Decile)][order(Decile)] + HighEngle[Region=="Rural" & NewArea_Name=="Sistan",weighted.mean(TOriginalFoodExpenditure_Per,Weight),by=.(Decile)][order(Decile)] + HighEngle[Region=="Rural" & NewArea_Name=="Sistan",weighted.mean(Total_Exp_Month_Per,Weight),by=.(Decile)][order(Decile)] + + HighEngle[Region=="Urban" & NewArea_Name=="Sistan",sum(HIndivNo),by=.(Decile)][order(Decile)] + HighEngle[Region=="Urban" & NewArea_Name=="Sistan",weighted.mean(TOriginalFoodExpenditure_Per,Weight),by=.(Decile)][order(Decile)] + HighEngle[Region=="Urban" & NewArea_Name=="Sistan",weighted.mean(Total_Exp_Month_Per,Weight),by=.(Decile)][order(Decile)] + + } + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/House Properties according to Province.R b/R/Archive/June 2020 (removed code files)/House Properties according to Province.R new file mode 100644 index 00000000..5204dd29 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/House Properties according to Province.R @@ -0,0 +1,73 @@ +# House Properties according to Province.R +# Builds the House Properties according to Province +# +# Copyright © 2020:Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHHouseProperties =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(foreign) +library(data.table) +library(stringr) +library(readxl) + +tenure <- data.table(Year=NA_integer_,Region=NA_integer_,ProvinceCode=NA_real_, + OwnLandandBuilding=NA_real_, + Apartment=NA_real_, + Rented=NA_real_, + Mortgage=NA_real_, + AgainstService=NA_real_, + Other=NA_real_, + Free=NA_real_)[0] + +tenure2 <- data.table(Year=NA_integer_,Region=NA_integer_,ProvinceCode=NA_real_, + tenure=NA_character_, + Share=NA_real_)[0] + + +for (year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:", year, "\n")) + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + MD<-MD[Region=="Urban" ] + MD<-merge(MD,HHHouseProperties[,.(HHID,tenure,room,area)],by="HHID") + MD2<-MD[,.(.N,Pop=sum(HIndivNo*Weight*Size)),by=.(Region,ProvinceCode,tenure)] + MD3<-MD[,.(PopT=sum(HIndivNo*Weight*Size)),by=.(Region,ProvinceCode)] + MD2<-merge(MD2,MD3) + MD2<-MD2[,Share:=Pop/PopT] + MD2[,sum(Share),by=.(Region,ProvinceCode)] + + X2 <- MD2[,.(Region,ProvinceCode,tenure,Share)] + X2[,Year:=year] + tenure2 <- rbind(tenure2,X2) + + + X1 <- MD[,.(OwnLandandBuilding=weighted.mean(tenure=="OwnLandandBuilding",Weight), + Apartment=weighted.mean(tenure=="Apartment",Weight), + Rented=weighted.mean(tenure=="Rented",Weight), + Mortgage=weighted.mean(tenure=="Mortgage",Weight), + AgainstService=weighted.mean(tenure=="AgainstService",Weight), + Free=weighted.mean(tenure=="Free",Weight), + Other=weighted.mean(tenure=="Other",Weight)),by=.(Region,ProvinceCode)] + X1[,Year:=year] + + tenure <- rbind(tenure,X1) + +} + +ggplot(tenure2, aes(fill=tenure, y=Share, x=Year)) + + geom_bar(position="dodge", stat="identity") + xlim(89, 98) + + ggtitle("Types of House") + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/House price.R b/R/Archive/June 2020 (removed code files)/House price.R new file mode 100644 index 00000000..1f91c580 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/House price.R @@ -0,0 +1,60 @@ +# House price.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ House price =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + + +PriceResults <- data.table(Year=NA_integer_,MeterPrice=NA_real_, + cluster3=NA_integer_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + MD<-MD[FinalPoor==1] + #MD<-MD[Region=="Rural"] + + + + ################Cluster################## + X1 <- MD[,.(MeterPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE)),by=cluster3] + + X1[,Year:=year] + + PriceResults <- rbind(PriceResults,X1) + + +} + +save(PriceResults,file=paste0(Settings$HEISProcessedPath,"PriceResults.rda")) + + +ggplot(PriceResults)+ + geom_line(mapping = aes(x=Year,y=MeterPrice,col=factor(cluster3))) + +PriceResults<-PriceResults[cluster3>7] + +ggplot(PriceResults, aes(fill=cluster3==13, y=MeterPrice, x=Year)) + + geom_bar(position="dodge", stat="identity")+ + theme(axis.title.x=element_blank(), + axis.title.y=element_blank(),) + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Income.R b/R/Archive/June 2020 (removed code files)/Income.R new file mode 100644 index 00000000..d25bb334 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Income.R @@ -0,0 +1,66 @@ +# Income + +# households working in public sector. +# +# Copyright © 2017-2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Income =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Pub1.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Pub2.rda")) + names(Pub2)<-c("HHID","IndPub") + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Prv1.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Prv2.rda")) + names(Prv2)<-c("HHID","IndPrv") + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Buss1.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Buss2.rda")) + names(Buss2)<-c("HHID","IndBuss") + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Agri1.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Agri2.rda")) + names(Agri2)<-c("HHID","IndAgri") + + Pub2<-Pub2[IndPub==2] + Prv2<-Prv2[IndPrv==2] + Buss2<-Buss2[IndBuss==2] + Agri2<-Agri2[IndAgri==2] + + WomanEmployed<-merge(Pub2,Prv2,all = TRUE) + WomanEmployed<-merge(WomanEmployed,Buss2,all = TRUE) + WomanEmployed<-merge(WomanEmployed,Agri2,all = TRUE) + WomanEmployed[is.na(WomanEmployed)] <- 0 + WomanEmployed[,indivsum:=1] + WomanEmployed<-WomanEmployed[,.(HHID,indivsum)] + save(WomanEmployed, file = paste0(Settings$HEISProcessedPath,"Y",year,"WomanEmployed.rda")) + + Pub1<-Pub1[PubEarners<3] + Prv1<-Prv1[PrvEarners<3] + Buss1<-Buss1[BussEarners<3] + Agri1<-Agri1[AgriEarners<3] + + NumberEmployed<-merge(Pub1,Prv1,all = TRUE) + NumberEmployed<-merge(NumberEmployed,Buss1,all = TRUE) + NumberEmployed<-merge(NumberEmployed,Agri1,all = TRUE) + NumberEmployed[is.na(NumberEmployed)] <- 0 + NumberEmployed[,numbersum:=PubEarners+PrvEarners+BussEarners+AgriEarners] + NumberEmployed<-NumberEmployed[,.(HHID,numbersum)] + NumberEmployed<-NumberEmployed[numbersum<3] + save(NumberEmployed, file = paste0(Settings$HEISProcessedPath,"Y",year,"NumberEmployed.rda")) + +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/InflationPovertyLine.R b/R/Archive/June 2020 (removed code files)/InflationPovertyLine.R new file mode 100644 index 00000000..4b24ad66 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/InflationPovertyLine.R @@ -0,0 +1,134 @@ +#InflationPvertyLine +#Calculate Poverty Line Based on Inflation +#Zahra Shahidi +#2019 + + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +inflation <- as.data.table(read_excel("~/GitHub/IRHEIS/Data/ProvinceCPI.xlsx", + sheet = "Province")) +load(file=paste0(Settings$HEISProcessedPath,"Province.rda")) +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + if(year!=95){ + + + #MD<-MD[Region=="Rural"] + + Fin<-FinalProvinceResults[Year==95] + + I<-inflation[Year==year] + Fin<-merge(Fin,I[,.(ProvinceCode,total)],by=c("ProvinceCode")) + Fin<-Fin[,PL:=PovertyLine*total/100] + EngleD<-FinalProvinceResults[Year==year] + EngleD<-merge(EngleD,Fin[,.(ProvinceCode,PL)],by=c("ProvinceCode")) + EngleD[,PovertyLine:=PL] + }else{ + EngleD<- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(ProvinceCode)] + EngleD[,PovertyLine:=FPLine/Engel] + + + } + FF<-inflation[Year==year] + EngleD<-merge(EngleD,FF[,.(ProvinceCode,total)]) + MD <- merge(MD,EngleD[,.(ProvinceCode,PovertyLine,Engel,total)],by=c("ProvinceCode")) + MD<-MD[,Total_Exp_Month_Per:=Total_Exp_Month_Per] + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)]) + #cat(MD[TOriginalFoodExpenditure_Per>0.8*FPLine & + # TOriginalFoodExpenditure_Per<1.2*FPLine & + # Region=="Rural" & NewArea==11, + # weighted.mean(Engel,Weight)]) + + +} +save(FinalClusterResults,file=paste0(Settings$HEISProcessedPath,"FinalClusterResultsI.rda")) +save(FinalCountryResults,file=paste0(Settings$HEISProcessedPath,"FinalCountryResultsI.rda")) +FinalCountryResults1<-FinalCountryResults[,name:=as.factor(0)] + +load(file=paste0(Settings$HEISProcessedPath,"FinalCountryResults.rda")) +FinalCountryResults<-FinalCountryResults[,name:=as.factor(1)] +FinalCountryResults<-rbind(FinalCountryResults,FinalCountryResults1) +FinalCountryResults<-FinalCountryResults[,Year:=as.factor(Year)] +FinalClusterResults<-FinalClusterResults[,Year:=as.factor(Year)] +FinalClusterResults<-FinalClusterResults[,cluster3:=as.factor(cluster3)] + +ggplot(data=FinalCountryResults,aes(x=Year, y=PovertyHCR, group=name, colour=name))+geom_line() + +ggplot(data=FinalCountryResults,aes(x=Year, y=PovertyHCR))+geom_line() + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Merge data.R b/R/Archive/June 2020 (removed code files)/Merge data.R new file mode 100644 index 00000000..d9f618c5 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Merge data.R @@ -0,0 +1,306 @@ + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + #load Demos+FoodPrices+Weights + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) + HHBase<-merge(HHBase,lactating,by="HHID") + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Calorie_Need.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFoodPrice.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights<-HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + + + + #load Expenditures + + for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Furnitures","HotelRestaurants", + "HouseandEnergys","House", "Medicals","Hygienes","Transportations","Others", + "Resturants" + )){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"NonFreeDurableData.rda")) + + } + + # load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Added_Food.rda")) + + #load Calories + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + FData[,Region:=NULL] + #for (col in c("FoodKCaloriesHH")) FData[is.na(get(col)), (col) := 0] + FData <- FData[FoodKCaloriesHH>0] + + #merge groups + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + FData[,Size:=NULL] + MD<-merge(MD,FData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,HHWeights ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodData,by =c("HHID"),all=TRUE) + # MD<-merge(MD,Added_Food,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseandEnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelRestaurantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HygieneData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BenzinData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,GazData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BarghData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,NaftSefidData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,NonFreeDurableData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ResturantData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,InvestmentData,by =c("HHID"),all=TRUE) + for (col in c("OriginalFoodExpenditure","FoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "Education_Exp", "HouseandEnergy_Exp", + "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", "Transportation_Exp", + "Other_Exp", "Medical_Exp", "NonFreeDurable_Exp", + "Resturant_Exp","ServiceExp" + )) + MD[is.na(get(col)), (col) := 0] + # MD<-MD[,Yaraneh:=416000*Size] + + MD<-merge(MD,Calorie_Need) + + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Durablele_Detail.rda")) + #MD<-merge(MD,Durablele_Detail) + + + + cpi97 <- read_excel("C:/Users/pc1/Desktop/cpi97.xlsx") + cpi97<-as.data.table(cpi97) + cpi97<-cpi97[Month>0] + cpi97<-cpi97[,Year:=NULL] + cpi97<-cpi97[,PeriodYear:=NULL] + cpi97<-cpi97[,.(Month,FoodDrink_Index,Cigar_Index,Cloth_Index,HouseEnergy_Index, + Furniture_Index,Hygiene_Index,Transportation_Index, + Communication_Index,Amusement_Index,Hotel_Index, + Other_Index,Durable_Index,Total_Index)] + + MD<-merge(MD,cpi97,by=c("Month"),all.x=TRUE) + + FoodDrink_Index98<-219.7 + Cigar_Index98<-281.1 + Cloth_Index98<-197.8 + HouseEnergy_Index98<-155.1 + Furniture_Index98<-225.1 + Hygiene_Index98<-158.1 + Transportation_Index98<-195.9 + Communication_Index98<-146.7 + Amusement_Index98<-224.5 + Hotel_Index98<-182.0 + Other_Index98<-199.5 + Durable_Index98<-259.2 + Total_Index98<-185.1 + + #Calculate Monthly Total Expenditures + nw <- c("FoodExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" ) + #w <- c(nw, "Medical_Exp", "Remain_Durable") + w <- c(nw, "Medical_Exp", "NonFreeDurable_Exp") + #w <- c(nw, "Medical_Exp", "Durable_Pure_Exp") + # pw <- c(nw, "Added_Food_Exp_Month") + #Lw <- c(pw, "Medical_Exp", "Durable_Exp") + + MD<-MD[,FoodExpenditure:=FoodExpenditure*FoodDrink_Index98/FoodDrink_Index] + MD<-MD[,OriginalFoodExpenditure:=OriginalFoodExpenditure*FoodDrink_Index98/FoodDrink_Index] + MD<-MD[,Cigar_Exp:=Cigar_Exp*Cigar_Index98/Cigar_Index] + MD<-MD[,Cloth_Exp:=Cloth_Exp*Cloth_Index98/Cloth_Index] + MD<-MD[,HouseandEnergy_Exp:=HouseandEnergy_Exp*HouseEnergy_Index98/HouseEnergy_Index] + MD<-MD[,Furniture_Exp:=Furniture_Exp*Furniture_Index98/Furniture_Index] + MD<-MD[,Hygiene_Exp:=Hygiene_Exp*Hygiene_Index98/Hygiene_Index] + MD<-MD[,Medical_Exp:=Medical_Exp*Hygiene_Index98/Hygiene_Index] + MD<-MD[,Transportation_Exp:=Transportation_Exp*Transportation_Index98/Transportation_Index] + MD<-MD[,Communication_Exp:=Communication_Exp*Communication_Index98/Communication_Index] + MD<-MD[,Amusement_Exp:=Amusement_Exp*Amusement_Index98/Amusement_Index] + MD<-MD[,HotelRestaurant_Exp:=HotelRestaurant_Exp*Hotel_Index98/Hotel_Index] + MD<-MD[,Other_Exp:=Other_Exp*Other_Index98/Other_Index] + MD<-MD[,NonFreeDurable_Exp:=NonFreeDurable_Exp*Durable_Index98/Durable_Index] + + MD[is.na(MD)] <- 0 + + MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + MD[,weighted.mean(Total_Exp_Month,Weight)] + MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN198.rda")) + cat(MD[,weighted.mean(Total_Exp_Month,Weight)]) + + x<-MD[,.(FoodExpenditure,OriginalFoodExpenditure,FoodExpenditure-OriginalFoodExpenditure)] +} + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + cat("\n") + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN198.rda")) + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + + #MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all.x = TRUE) + MD<-MD[Size!=0 & OriginalFoodExpenditure!=0 & !is.na(FoodKCaloriesHH)] + #MD[,Home_Per_Metr:=MetrPrice/EqSizeOECD] + + #Calculate Per Values + MD[,EqSizeCalory3 :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + + MD[,EqSizeCalory := + NAge1B *(Settings$ KCaloryNeed_B1 /Calorie_Need_WorldBank)+ + NAge2B *(Settings$ KCaloryNeed_B2 /Calorie_Need_WorldBank)+ + NAge3B *(Settings$ KCaloryNeed_B3 /Calorie_Need_WorldBank)+ + NAge4B *(Settings$ KCaloryNeed_B4 /Calorie_Need_WorldBank)+ + NAge5B *(Settings$ KCaloryNeed_B5 /Calorie_Need_WorldBank)+ + NAge6B *(Settings$ KCaloryNeed_B6 /Calorie_Need_WorldBank)+ + NAge7B *(Settings$ KCaloryNeed_B7 /Calorie_Need_WorldBank)+ + NAge8B *(Settings$ KCaloryNeed_B8 /Calorie_Need_WorldBank)+ + NAge9B *(Settings$ KCaloryNeed_B9 /Calorie_Need_WorldBank)+ + NAge10B *(Settings$ KCaloryNeed_B10 /Calorie_Need_WorldBank)+ + NAge1G *(Settings$ KCaloryNeed_G1 /Calorie_Need_WorldBank)+ + NAge2G *(Settings$ KCaloryNeed_G2 /Calorie_Need_WorldBank)+ + NAge3G *(Settings$ KCaloryNeed_G3 /Calorie_Need_WorldBank)+ + NAge4G *(Settings$ KCaloryNeed_G4 /Calorie_Need_WorldBank)+ + NAge5G *(Settings$ KCaloryNeed_G5 /Calorie_Need_WorldBank)+ + NAge6G *(Settings$ KCaloryNeed_G6 /Calorie_Need_WorldBank)+ + NAge7G *(Settings$ KCaloryNeed_G7 /Calorie_Need_WorldBank)+ + NAge8G *(Settings$ KCaloryNeed_G8 /Calorie_Need_WorldBank)+ + NAge9G *(Settings$ KCaloryNeed_G9 /Calorie_Need_WorldBank)+ + NAge10G *(Settings$ KCaloryNeed_G10 /Calorie_Need_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_WorldBank)] + + MD[,EqSizeCalory2 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Calorie_Need_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Calorie_Need_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Calorie_Need_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Calorie_Need_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Calorie_Need_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Calorie_Need_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Calorie_Need_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Calorie_Need_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Calorie_Need_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Calorie_Need_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Calorie_Need_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Calorie_Need_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Calorie_Need_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Calorie_Need_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Calorie_Need_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Calorie_Need_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Calorie_Need_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Calorie_Need_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_Anstitoo)] + + MD[,EqSizeCalory4 := + NAge1B*(Settings$KCaloryNeed_B1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2B*(Settings$KCaloryNeed_B2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3B*(Settings$KCaloryNeed_B3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4B*(Settings$KCaloryNeed_B4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5B*(Settings$KCaloryNeed_B5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6B*(Settings$KCaloryNeed_B6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7B*(Settings$KCaloryNeed_B7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8B*(Settings$KCaloryNeed_B8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9B*(Settings$KCaloryNeed_B9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10B*(Settings$KCaloryNeed_B10/Settings$KCaloryNeed_Adult_WorldBank)+ + NAge1G*(Settings$KCaloryNeed_G1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2G*(Settings$KCaloryNeed_G2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3G*(Settings$KCaloryNeed_G3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4G*(Settings$KCaloryNeed_G4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5G*(Settings$KCaloryNeed_G5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6G*(Settings$KCaloryNeed_G6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7G*(Settings$KCaloryNeed_G7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8G*(Settings$KCaloryNeed_G8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9G*(Settings$KCaloryNeed_G9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10G*(Settings$KCaloryNeed_G10/Settings$KCaloryNeed_Adult_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_WorldBank)] + + MD[,EqSizeCalory5 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Settings$KCaloryNeed_Adult_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_Anstitoo)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN298.rda")) +} + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN298.rda")) + + + #MD[,Relative_Calorie1 :=FoodKCaloriesHH/Calorie_Need1] + #MD[,Relative_Calorie2 :=FoodKCaloriesHH/Calorie_Need2] + MD[,OriginalFoodExpenditure_Per :=OriginalFoodExpenditure/EqSizeCalory] + MD[,FoodKCaloriesHH_Per:=FoodKCaloriesHH/EqSizeCalory] + MD[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] + + #Calculate per_Calory from resturants + MD[,Calory_Price:=(OriginalFoodExpenditure_Per/FoodKCaloriesHH_Per)] + MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)] + MD[,ResturantKCalories:=(Settings$OutFoodKCXShare*Resturant_Exp)/Calory_Price_Area] + for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] + MD[,TFoodKCaloriesHH:=FoodKCaloriesHH+ResturantKCalories] + MD[,TOriginalFoodExpenditure:=OriginalFoodExpenditure+Resturant_Exp] + + MD[,TOriginalFoodExpenditure_Per :=TOriginalFoodExpenditure/EqSizeCalory] + MD[,TFoodKCaloriesHH_Per:=TFoodKCaloriesHH/EqSizeCalory] + + ############################################################## + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN398.rda")) + + +} + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Moving Average Engel.R b/R/Archive/June 2020 (removed code files)/Moving Average Engel.R new file mode 100644 index 00000000..5dafd82e --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Moving Average Engel.R @@ -0,0 +1,185 @@ +#Moving Average Engel +#New Poverty Results Using Moving Average Engel +#Zahra Shahidi +#2019 + +rm(list=ls()) + +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(writexl) +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(pracma) +library(tidyverse) +library(lubridate) +library(fpp2) +library(zoo) +library(smooth) +library(plotrix) +library(Hmisc) +library(gridExtra) +library(dplyr) +load(file=paste0(Settings$HEISProcessedPath,"FinalClusterResults.rda")) + +FinalClusterResults<-FinalClusterResults[order(cluster3,Year)] +for(Cluster3 in (1:13)){ + m<-FinalClusterResults[cluster3==Cluster3] + m<-m[,MA_Engel:=movavg(x=m$Engle,n=5,type = "s")] + if (Cluster3==1){ + s<-m + }else{ + s<-rbind(s,m) + } +} +s<-s[,MA_PovertyLine:=FPLine/MA_Engel] + +FinalCountryResults <- data.table(Year=NA_integer_,MA_Engel=NA_integer_, + Calory_Price_Area=NA_integer_,FoodPoverty=NA_integer_, + FPLine=NA_integer_, + MA_PovertyLine=NA_real_,PovertyHCR=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_, + Calory_Price_Area=NA_integer_, + MA_Engel=NA_integer_, + FoodPoverty=NA_integer_,FPLine=NA_integer_, + MA_PovertyLine=NA_real_,PovertyHCR=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + MA_PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +FinalProvinceResults<-data.table(Year=NA_integer_,ProvinceCode=NA_integer_,MA_Engel=NA_integer_, + Calory_Price_Area=NA_integer_,FoodPoverty=NA_integer_, + FPLine=NA_integer_, + MA_PovertyLine=NA_real_,PovertyHCR=NA_real_)[0] +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + #MD<-MD[Region=="Rural"] + + EngleD <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + f<-s[Year==year] + z<-s[Year==year] + #MD<-MD[,cluster3:=as.factor(cluster3)] + #MD<-merge(MD,s[,.(MA_Engel,cluster3)],by=c("cluster3"),all.x = T) + EngleD<-merge(EngleD,f[,.(cluster3,MA_PovertyLine,MA_Engel)],by=c("cluster3")) + MD <- merge(MD,EngleD[,.(cluster3,Region,MA_PovertyLine,MA_Engel)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < MA_PovertyLine,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + MD[,FGT1M:=(MA_PovertyLine-Total_Exp_Month_Per)/MA_PovertyLine] + MD[,FGT2M:=((MA_PovertyLine-Total_Exp_Month_Per)/MA_PovertyLine)^2] + + ################Country################## + + X1 <- MD[,.(FPLine=weighted.mean(FPLine,Weight),MA_Engel=weighted.mean(MA_Engel,Weight),FoodPoverty=weighted.mean(FinalFoodPoor,Weight*Size), + MA_PovertyLine=weighted.mean(MA_PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Calory_Price_Area=weighted.mean(Calory_Price_Area,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <-X1 + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(MA_Engel=weighted.mean(MA_Engel,Weight),FoodPoverty=weighted.mean(FinalFoodPoor,Weight*Size), + FPLine=weighted.mean(FPLine,Weight), + MA_PovertyLine=weighted.mean(MA_PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Calory_Price_Area=weighted.mean(Calory_Price_Area,Weight)),by=Region] + + + X1[,Year:=year] + + FinalRegionResults<- rbind(FinalRegionResults,X1) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + MA_PovertyLine=weighted.mean(MA_PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults<- rbind(FinalClusterResults,X) + ################Province################## + X1 <- MD[,.(FPLine=weighted.mean(FPLine,Weight),MA_Engel=weighted.mean(MA_Engel,Weight),FoodPoverty=weighted.mean(FinalFoodPoor,Weight*Size), + MA_PovertyLine=weighted.mean(MA_PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Calory_Price_Area=weighted.mean(Calory_Price_Area,Weight)),by=c("ProvinceCode")] + + +X1[,Year:=year] + + FinalProvinceResults<- rbind(FinalProvinceResults,X1) + FinalProvinceResults<-FinalProvinceResults[order(ProvinceCode)] + M<-MD[NewArea<=30,.(ProvinceCode,NewArea_Name)] + M<-M[,ProvinceCode:=as.integer(ProvinceCode)] + M<-distinct(M) + M<-M[NewArea_Name!="Sh_Arak"] + #FinalProvinceResults<-merge(FinalProvinceResults,M,by="ProvinceCode") + cat(MD[, weighted.mean(FinalPoor,Weight*Size)]) + #cat(MD[TOriginalFoodExpenditure_Per>0.8*FPLine & + # TOriginalFoodExpenditure_Per<1.2*FPLine & + # Region=="Rural" & NewArea==11, + # weighted.mean(Engel,Weight)]) + + +} +FinalProvinceResults1<-FinalProvinceResults[Year==97] +write_xlsx(CaloryPrice,path="CaloryPrice.xlsx",col_names=T) +write_xlsx(M,path="ostan.xlsx",col_names=T) + +s<-s[,cluster3:=as.factor(cluster3)] +s<-s[,Year:=as.factor(Year)] + +ggplot(data=FinalClusterResults,aes(x=Year, y=PovertyHCR, group=cluster3, colour=cluster3,type=cluster3))+geom_line() +FinalCountryResults1<-FinalCountryResults +FinalCountryResults5<-FinalCountryResults[,name:=as.factor(0)] +FinalCountryResults1<-FinalCountryResults1[,.(Year,MA_PovertyLine,PovertyHCR,name)] + +load(file=paste0(Settings$HEISProcessedPath,"FinalCountryResults.rda")) +load(file=paste0(Settings$HEISProcessedPath,"FinalClusterResults.rda")) +FinalCountryResults5<-FinalCountryResults5[,.(PovertyHCR,name,Year)] +FinalCountryResults<-FinalCountryResults[,.(PovertyHCR,name,Year)] + +FinalClusterResults<-FinalClusterResults[,cluster3:=as.factor(cluster3)] +FinalClusterResults<-FinalClusterResults[,Year:=as.factor(Year)] +FinalCountryResults<-FinalCountryResults[,Year:=as.factor(Year)] + +ggplot(data=FinalCountryResults,aes(x=Year, y=PovertyHCR))+geom_line(group=1) +FinalCountryResults<-FinalCountryResults[,name:=as.factor(1)] + +FinalCountryResults2<-FinalCountryResults2[,PovertyLine:=MA_PovertyLine] +FinalCountryResults2<-FinalCountryResults2[,.(Year,PovertyLine,PovertyHCR,PovertyGap,PovertyDepth,name)] +FinalCountryResults2<-FinalCountryResults + +FinalCountryResults<-rbind(FinalCountryResults,FinalCountryResults5) +ggplot(data=FinalCountryResults,aes(x=Year, y=PovertyHCR, group=name, colour=name, type=name))+geom_line() + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Moving Average.R b/R/Archive/June 2020 (removed code files)/Moving Average.R new file mode 100644 index 00000000..19f44168 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Moving Average.R @@ -0,0 +1,78 @@ +# Moving Average.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Moving Average =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(pracma) +library(tidyverse) +library(lubridate) +library(fpp2) +library(zoo) +library(smooth) +library(plotrix) +library(Hmisc) +library(gridExtra) + +load(file = "Needed_Calorie.rda") + +Needed_Calorie_M_W<-Needed_Calorie[Sex_W=="M",.(Age,Needed_Calorie_W,Sex_W)] +Needed_Calorie_W_W<-Needed_Calorie[Sex_W=="W",.(Age,Needed_Calorie_W,Sex_W)] + +Boy<-as.data.table(ma(Needed_Calorie_M_W$Needed_Calorie_W, order=5, centre = TRUE)) +Boy<-cbind(Needed_Calorie_M_W[,.(Age,Needed_Calorie_W)],Boy) +Boy[is.na(Boy)] <- 0 +Boy<-Boy[,Smoothed_Needed_Calorie:=ifelse(x>0,x,Needed_Calorie_W)] +Boy<-Boy[,.(Age,Needed_Calorie_W,Smoothed_Needed_Calorie)] + +p1<-ggplot(Boy,aes(Age,Needed_Calorie_W,alpha=0.5))+geom_density(stat="identity") +p2<-ggplot(Boy,aes(Age,Smoothed_Needed_Calorie,alpha=0.5))+geom_density(stat="identity") +grid.arrange(p1,p2,nrow=2) + + +Girl<-as.data.table(ma(Needed_Calorie_W_W$Needed_Calorie_W, order=5, centre = TRUE)) +Girl<-cbind(Needed_Calorie_W_W[,.(Age,Needed_Calorie_W)],Girl) +Girl[is.na(Girl)] <- 0 +Girl<-Girl[,Smoothed_Needed_Calorie:=ifelse(x>0,x,Needed_Calorie_W)] +Girl<-Girl[,.(Age,Needed_Calorie_W,Smoothed_Needed_Calorie)] + +p1<-ggplot(Girl,aes(Age,Needed_Calorie_W,alpha=0.5))+geom_density(stat="identity") +p2<-ggplot(Girl,aes(Age,Smoothed_Needed_Calorie,alpha=0.5))+geom_density(stat="identity") +grid.arrange(p1,p2,nrow=2) + +y.movavg1 <-as.data.table(movavg(x = Needed_Calorie_M_W$Needed_Calorie_W, n = 2, type = "s")) +y.movavg2 <-as.data.table(movavg(x = Needed_Calorie_M_W$Needed_Calorie_W, n = 2, type = "t")) +y.movavg3 <-as.data.table(movavg(x = Needed_Calorie_M_W$Needed_Calorie_W, n = 2, type = "w")) +y.movavg4 <-as.data.table(movavg(x = Needed_Calorie_M_W$Needed_Calorie_W, n = 2, type = "m")) +y.movavg5 <-as.data.table(movavg(x = Needed_Calorie_M_W$Needed_Calorie_W, n = 2, type = "e")) +y.movavg6 <-as.data.table(movavg(x = Needed_Calorie_M_W$Needed_Calorie_W, n = 2, type = "r")) + + +Needed_Calorie_M_W<-cbind(Needed_Calorie_M_W,y.movavg1) +Needed_Calorie_M_W<-cbind(Needed_Calorie_M_W,y.movavg2) +Needed_Calorie_M_W<-cbind(Needed_Calorie_M_W,y.movavg3) +Needed_Calorie_M_W<-cbind(Needed_Calorie_M_W,y.movavg4) +Needed_Calorie_M_W<-cbind(Needed_Calorie_M_W,y.movavg5) +Needed_Calorie_M_W<-cbind(Needed_Calorie_M_W,y.movavg6) + +A<-as.data.table(rollmean(Needed_Calorie_M_W$Needed_Calorie_W, 3, + na.pad = FALSE,align = c("center"))) + +cma(Needed_Calorie_M_W$Needed_Calorie_W, order = NULL,silent = FALSE) + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/NonFree Durable Goods.R b/R/Archive/June 2020 (removed code files)/NonFree Durable Goods.R new file mode 100644 index 00000000..82d7012b --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/NonFree Durable Goods.R @@ -0,0 +1,59 @@ +#NonFree Durable Goods + +rm(list=ls()) + +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + + + +cat("\n\n================ NonFree Durable Goods=====================================\n") +DurableTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Durable)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- DurableTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","BuyingMethod","Durable_Exp","Durable_Sale")) + TC <- TC[,pcols,with=FALSE] + TC<-TC[BuyingMethod!=8] + if(year %in% 84:97){ + TC[,Durable_Exp:=as.numeric(Durable_Exp)] + TC[,Durable_Sale:=as.numeric(Durable_Sale)] + } + TC$NonFreeDurable_Exp<-TC$Durable_Exp/12 + TC$NonFreeDurable_Sale<-TC$Durable_Sale/12 + TC[,Code:=NULL] + TC[,BuyingMethod:=NULL] + TC[is.na(TC)] <- 0 + TC[,NonFreeDurable_Pure_Exp:=NonFreeDurable_Exp-NonFreeDurable_Sale] + NonFreeDurableData <- TC[,lapply(.SD,sum),by=HHID] + save(NonFreeDurableData, file = paste0(Settings$HEISProcessedPath,"Y",year,"NonFreeDurableData.rda")) + + +} + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/PoorPanel.R b/R/Archive/June 2020 (removed code files)/PoorPanel.R new file mode 100644 index 00000000..87f9dced --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/PoorPanel.R @@ -0,0 +1,301 @@ + + + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +year<-97 + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + inflation <- as.data.table(read_excel("~/GitHub/IRHEIS/Data/ProvinceCPI.xlsx", + sheet = "Province")) + I<-inflation[Year==year] + C<-MD[,.(HHID,cluster3,EqSizeCalory)] +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Specific.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Job.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) +MD<-merge(BigFData,MD,by=c("HHID"),all.x = T) +MD<-MD[FinalPoor==1] +Calory<-MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight*Size),by=c("ProvinceCode")] +MD<-merge(MD,FoodNames,by=c("FoodType"),all.x = T) +base<-MD[,weighted.mean(FGrams/EqSizeCalory*KCalories,Weight*Size),by=c("ProvinceName","FoodType")] + +base<-MD[,fcalory:=FGrams*KCalories/EqSizeCalory] +base<-base[,weighted.mean(V1,Weight*Size),by=c("ProvinceName","FoodType")] +s<-base[,sum(V1),by=c("ProvinceName")] + +MD<-MD[,foodpoor:=ifelse(FoodKCaloriesHH0 | NDabestan>0 | NRahnamayi>0 | NPish>0 | KelasKonkoor>0] +Dabestan<-Dabestan[,Enrollment:=Enrollment_Dabirestan_G+Enrollment_Dabirestan_NG+Enrollment_Dabirestan_Shabane+ + Enrollment_Dabestan_G+Enrollment_Dabestan_NG+Enrollment_Rahnamayi_G+Enrollment_Rahnamayi_NG+ + Enrollment_pish_G+Enrollment_pish_NG+Enrollment_Rahnamayi_Shabane+Enrollment_pish_Shabane+ + KelasKonkoor] +Dabestan<-MD[NDabestan>0] +Dabestan<-Dabestan[,enrol:=Enrollment_Dabestan_NG/NDabestan] +female<-MD[Size>1] + +female<-female[,female:=ifelse(HSex=="Female",1,0)] +female<-female[,weighted.mean(female,Weight*Size,na.rm = T),by=c("ProvinceName","FinalPoor")] +Dabestan2<-Dabestan[,weighted.mean(enrol/Total_Exp_Month_Per,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan2<-MD[,weighted.mean(Enrollment_Rahnamayi_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan3<-MD[,weighted.mean(Enrollment_Rahnamayi_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan4<-MD[,weighted.mean(Enrollment_Dabirestan_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan5<-MD[,weighted.mean(Enrollment_Dabirestan_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +Dabestan6<-MD[,weighted.mean(KelasKonkoor,Weight*Size),by=c("ProvinceName","FinalPoor")] + +edu<-as.data.table(cbind(Dabestan1$ProvinceName,Dabestan1$FinalPoor,Dabestan1$V1, + Dabestan2$V1)) + +tooth<-MD[,weighted.mean(tooth_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +tooth<-MD[,weighted.mean(tooth_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] + +visit<-MD[,weighted.mean(Visit_Omoomi_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit1<-MD[,weighted.mean(Visit_Omoomi_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit2<-MD[,weighted.mean(Visit_Motekhases_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit3<-MD[,weighted.mean(Visit_Motekhases_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit4<-MD[,weighted.mean(Visit_Mama_G,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit5<-MD[,weighted.mean(Visit_Mama_NG,Weight*Size),by=c("ProvinceName","FinalPoor")] +visit<-as.data.table(cbind(visit$ProvinceName,visit$FinalPoor,visit$V1,visit1$V1, + visit2$V1,visit3$V1,visit4$V1,visit5$V1)) + +phd<-MD[,weighted.mean(NPhD+NMasters+NBachelors,Weight*Size),by=c("ProvinceName")] +inflation<-inflation[Year==year] +cpi<-inflation$CPI +cpi<-as.numeric(cpi) +MD<-MD[,Medical_Exp1:=Medical_Exp/cpi] +MD<-MD[,Medical_Exp:=Medical_Exp1/EqSizeOECD] +MD<-MD[,Total_Exp_Month1:=Total_Exp_Month/cpi] +MD<-MD[,Total_Exp_Month:=Total_Exp_Month1/EqSizeOECD] +MD<-MD[,Durable_Exp1:=Durable_Exp/cpi] +MD<-MD[,Durable_Exp:=Durable_Exp1/EqSizeOECD] +MD<-merge(MD,MD1,by=c("HHID")) +MD<-merge(MD,C,by=c("HHID")) +MD<-MD[FinalPoor==1] +MD<-MD[,poverty_R:=weighted.mean(Total_Exp_Month,Weight*Size)] +MD<-MD[!is.na(Area)] +MD<-MD[,House_PL:=Size*10] +MD<-MD[,HousePoor:=ifelse(Area0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (TOriginalFoodExpenditure/Total_Exp_Month) > 0.4, + .(.N),by=.(Region,cluster3)] + names(HighEngle1)<-c("Region", "cluster3","N40") + + HighEngle2 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (TOriginalFoodExpenditure/Total_Exp_Month) > 0.45, + .(.N),by=.(Region,cluster3)] + names(HighEngle2)<-c("Region", "cluster3","N45") + + HighEngle3 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (TOriginalFoodExpenditure/Total_Exp_Month) > 0.5, + .(.N),by=.(Region,cluster3)] + names(HighEngle3)<-c("Region", "cluster3","N50") + + HighEngle4 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N),by=.(Region,cluster3)] + + HighEngle<-merge(HighEngle1,HighEngle2) + HighEngle<-merge(HighEngle,HighEngle3) + HighEngle<-merge(HighEngle,HighEngle4) + + #MD<-MD[,Durable_Exp_mean:=weighted.mean(Durable_Exp,Weight),by=.(Region,NewArea_Name)] + #MD<-MD[,Durable_Exp_median:=weighted.median(Durable_Exp,Weight),by=.(Region,NewArea_Name)] + #MD<-MD[,Durable_Exp_mean_Per:=weighted.mean(Durable_Exp/EqSizeOECD,Weight),by=.(Region,NewArea_Name)] + #MD<-MD[,Durable_Exp_median_Per:=weighted.median(Durable_Exp/EqSizeOECD,Weight),by=.(Region,NewArea_Name)] + #MD[,mean(Durable_Exp_median_Per),by=.(Region,NewArea_Name)][order(Region,V1)] + #EngleD<- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + # TOriginalFoodExpenditure_Per<1.2*FPLine, + # .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month_nondurable,Weight), + # FPLine=mean(FPLine)),by=.(Region,cluster3)] + + EngleD<- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month_nondurable,Weight), + FPLine=mean(FPLine), + DurableMedical_to_NonDurable_mean_Share=weighted.mean((Durable_Exp+Medical_Exp)/Total_Exp_Month_nondurable,Weight), + Durable_to_NonDurable_mean_Share=weighted.mean(Durable_Exp/Total_Exp_Month_nondurable,Weight), + Durable_to_NonDurable_median_Share=weighted.median(Durable_Exp/Total_Exp_Month_nondurable,Weight), + Durable_Exp_mean=weighted.mean(Durable_Exp,Weight), + Durable_Exp_median=weighted.median(Durable_Exp,Weight), + Durable_Exp_mean_Per=weighted.mean(Durable_Exp/EqSizeOECD,Weight), + Durable_Exp_median_Per=weighted.median(Durable_Exp/EqSizeOECD,Weight)),by=.(Region,cluster3)] + + ggplot(EngleD, aes(fill=factor(cluster3), y=Durable_to_NonDurable_mean_Share, x=cluster3)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + ylim(0,0.55) + + + EngleD[,PovertyLine_NonDurable:=FPLine/Engel] + EngleD[,PovertyLine:=PovertyLine_NonDurable*(1+Durable_to_NonDurable_mean_Share)] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engel)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + ################High Engle################## + + X1 <- HighEngle + + X1[,Year:=year] + + HighEngles <- rbind(HighEngles,X1) + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine,Weight*Size)]) + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + Poors<-MD[FinalPoor==1] + + a<-MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + cluster3==7, + .(x=TOriginalFoodExpenditure/Total_Exp_Month)] + + + MD[as.numeric(Decile)<2,weighted.mean(FinalPoor,Weight)] + + MD5<-MD[ProvinceCode!=11] + MD5<-MD5[,Group:=ifelse(FinalPoor==0 & FinalFoodPoor==0,"NoPoor", + ifelse(FinalPoor==1 & FinalFoodPoor==0,"OnlyFinalPoor", + ifelse(FinalPoor==0 & FinalFoodPoor==1,"OnlyFoodPoor","Both")))] + a<-ggplot(MD5,aes(x=HHEngle, fill=factor(Group))) + + geom_density(alpha=0.25)+ + xlim(0,1)+ylim(0,5)+ + ggtitle(year) + plot(a) + + + +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Probit Model Data.R b/R/Archive/June 2020 (removed code files)/Probit Model Data.R new file mode 100644 index 00000000..89b4cf84 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Probit Model Data.R @@ -0,0 +1,281 @@ +#Probit Model Data +#Providing Data For Model + +#Zahra Shahidi +#2020 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Providing Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +year<-97 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + inflation <- as.data.table(read_excel("~/GitHub/IRHEIS/Data/ProvinceCPI.xlsx", + sheet = "Province")) + I<-inflation[Year==year] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + # load(file=paste0(Settings$HEISProcessedPath,"Y",year,"demo.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Specific.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Job.rda")) + # load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + + job<-job[,Region:=NULL] + job<-job[,HActivityState:=NULL] + job<-job[,Decile:=NULL] + + # demo[,HHID:=as.numeric(HHID)] + #MD[,HHID:=as.numeric(HHID)] + + #MD<-merge(MD,demo[,.(NEmployed,NLiterate,HHID)],by=c("HHID"),all.x = T) + MD<-merge(MD,job,by=c("HHID"),all.x = T) + MD<-merge(MD,Specific,by=c("HHID"),all.x = T) + MD<-merge(MD,I,by=c("ProvinceCode","Year","NewArea_Name"),all.x = T) + MD<-merge(MD,IncomeTable[,.(HHID,NetIncome)],by=c("HHID"),all.x = T) + # MD<-merge(MD,HHHouseProperties,by=c("HHID"),all.x = T) + + MD<-MD[!duplicated(MD$HHID)] + MD<-MD[!is.na(FinalPoor)] + + goosht<-BigFData[FoodType=="Goosht"] + goosht<-goosht[,Goosht_Grams:=FGrams] + mahi<-BigFData[FoodType=="Mahi"] + mahi<-mahi[,Mahi_Grams:=FGrams] + morgh<-BigFData[FoodType=="Morgh"] + morgh<-morgh[,Morgh_Grams:=FGrams] + mive<-BigFData[FoodType=="Mive"] + mive<-mive[,Mive_Grams:=FGrams] + nan<-BigFData[FoodType=="Nan"] + nan<-nan[,Nan_Grams:=FGrams] + sibzamini<-BigFData[FoodType=="Sibzamini"] + sibzamini<-sibzamini[,Sibzamini_Grams:=FGrams] + makarooni<-BigFData[FoodType=="Makarooni"] + makarooni<-makarooni[,Makarooni_Grams:=FGrams] + khoshkbar<-BigFData[FoodType=="Khoshkbar"] + khoshkbar<-khoshkbar[,Khoshkbar_Grams:=FGrams] + + MD<-merge(MD,goosht[,.(HHID,Goosht_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,mahi[,.(HHID,Mahi_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,morgh[,.(HHID,Morgh_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,mive[,.(HHID,Mive_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,nan[,.(HHID,Nan_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,sibzamini[,.(HHID,Sibzamini_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,makarooni[,.(HHID,Makarooni_Grams)],by=c("HHID"),all.x = T) + MD<-merge(MD,khoshkbar[,.(HHID,Khoshkbar_Grams)],by=c("HHID"),all.x = T) + + + + for (col in c("Goosht_Grams","Mahi_Grams", "Morgh_Grams", "Mive_Grams", "Nan_Grams", + "Sibzamini_Grams", "Makarooni_Grams", "Khoshkbar_Grams" + )) + MD[is.na(get(col)), (col) := 0] + + MD<-MD[,Goosht_Grams_Per:=Goosht_Grams/EqSizeCalory] + MD<-MD[,Morgh_Grams_Per:=Morgh_Grams/EqSizeCalory] + MD<-MD[,Mahi_Grams_Per:=Mahi_Grams/EqSizeCalory] + MD<-MD[,Mive_Grams_Per:=Mive_Grams/EqSizeCalory] + MD<-MD[,Nan_Grams_Per:=Nan_Grams/EqSizeCalory] + MD<-MD[,Sibzamini_Grams_Per:=Sibzamini_Grams/EqSizeCalory] + MD<-MD[,Makarooni_Grams_Per:=Makarooni_Grams/EqSizeCalory] + MD<-MD[,Khoshkbar_Grams_Per:=Khoshkbar_Grams/EqSizeCalory] + M<-MD[,weighted.mean(Goosht_Grams_Per,Weight*Size),] + MD<-MD[,T_Meat_Grams_per:=Goosht_Grams_Per+Morgh_Grams_Per+Mahi_Grams_Per] + MD<-MD[,T_Inferior_Grams_Per:=Nan_Grams_Per+Sibzamini_Grams_Per+Makarooni_Grams_Per] + + MD<-MD[,Ratio_TOriginalFoodExpenditure:=TOriginalFoodExpenditure/Total_Exp_Month] + MD<-MD[,Ratio_Amusement_Exp:=Amusement_Exp/Total_Exp_Month] + MD<-MD[,Ratio_HouseandEnergy_Exp:=HouseandEnergy_Exp/Total_Exp_Month] + MD<-MD[,Ratio_MetrPrice:=MetrPrice/Total_Exp_Month] + MD<-MD[,Ratio_Total_Exp_Month_nondurable:=Total_Exp_Month_nondurable/Total_Exp_Month] + MD<-MD[,Ratio_Medical_Exp:=Medical_Exp/Total_Exp_Month] + MD<-MD[,Ratio_Furniture_Exp:=Furniture_Exp/Total_Exp_Month] + MD<-MD[,Ratio_Cloth_Exp:=Cloth_Exp/Total_Exp_Month] + MD<-MD[,Ratio_ServiceExp:=ServiceExp/Total_Exp_Month] + MD<-MD[,Ratio_Durable_Exp:=Durable_Exp/(Total_Exp_Month_nondurable+Durable_Exp)] + MD<-MD[,Ratio_Hygiene_Exp:=Hygiene_Exp/Total_Exp_Month] + + + + + MD<-MD[,Ratio_NUniv:=NUniv/Size] + MD<-MD[,Square_NUniv:=Ratio_NUniv^2] + + MD<-MD[,Area_Per:=Area/Size] + MD<-MD[,Log_Area_Per:=log(Area_Per)] + MD<-MD[,Square_Area_Per:=Area_Per^2] + + MD<-MD[,Square_HAge:=HAge^2] + + MD<-MD[NDabestan!=0,Dabestan_Per:=Enrollment_Dabestan_G+Enrollment_Dabestan_NG/NDabestan] + MD<-MD[NRahnamayi!=0,Rahnamayi_Per:=Enrollment_Rahnamayi_G+Enrollment_Rahnamayi_NG+Enrollment_Rahnamayi_Shabane/NRahnamayi] + MD<-MD[NDabirestan!=0,Dabirestan_Per:=Enrollment_Dabirestan_G+Enrollment_Dabirestan_NG+Enrollment_Dabirestan_Shabane/NDabirestan] + MD<-MD[NPish!=0,Pish_Per:=Enrollment_pish_G+Enrollment_pish_NG+Enrollment_pish_Shabane+KelasKonkoor/NPish] + MD<-MD[,Education_Per:=Dabestan_Per+Rahnamayi_Per+Dabirestan_Per+Pish_Per] + MD<-MD[,Ratio_Education_per:=Education_Per/(Total_Exp_Month_Per+Education_Per)] + + MD<-MD[,Visit:=Visit_Omoomi_G+Visit_Omoomi_NG+Visit_Motekhases_G+Visit_Motekhases_NG+Visit_Mama_G+Visit_Mama_NG+ + Visit_Ravanpezeshk_G+Visit_Ravanpezeshk_NG] + MD<-MD[,Tooth:=tooth_G+tooth_NG+tooth_Jarahi_G+tooth_Jarahi_NG+Ortodensy_G+Ortodensy_NG] + MD<-MD[,Medicine:=Visit+Tooth+Radiology_G+Radiology_NG+Phisioteraphy_G+Phisioteraphy_NG+Drug+Lab_G+Lab_NG+ + Ambulance_G+Ambulance_NG+Vaksan_G+Vaksan_NG] + MD<-MD[,Ratio_Medicine:=Medicine/Total_Exp_Month] + + MD<-MD[,Real_Total_Exp_Month:=Total_Exp_Month/total] + MD<-MD[,Real_FoodExpenditure:=FoodExpenditure/food] + MD<-MD[,Real_Durable_Exp:=Durable_Exp/durables] + + MD<-MD[,Pub_Employee:=ifelse(Score_Job1==0,0,1)] + MD<-MD[,Prv_Employee:=ifelse(Score_Job2==0,0,1)] + MD<-MD[,Cooperative_Employee:=ifelse(Score_Job3==0,0,1)] + MD<-MD[,Simple_Jobs_Staff:=ifelse(Score_Job1==9 | Score_Job2==9 | Score_Job3==9 | Score_Job4==9 | Score_Job5==9,1,0)] + MD<-MD[,Opreators_machinery_equipment:=ifelse(Score_Job1==8 | Score_Job2==8 | Score_Job3==8 | Score_Job4==8 | Score_Job5==8,1,0)] + MD<-MD[,Craftsman:=ifelse(Score_Job1==7 | Score_Job2==7 | Score_Job3==7 | Score_Job4==7 | Score_Job5==7,1,0)] + MD<-MD[,Skilled_staff_agriculture_forestr_fishing:=ifelse(Score_Job1==6 | Score_Job2==6 | Score_Job3==6 | Score_Job4==6 | Score_Job5==6,1,0)] + MD<-MD[,Staff_service_sales:=ifelse(Score_Job1==5 | Score_Job2==5 | Score_Job3==5 | Score_Job4==5 | Score_Job5==5,1,0)] + MD<-MD[,Office_staff:=ifelse(Score_Job1==4 | Score_Job2==4 | Score_Job3==4 | Score_Job4==4 | Score_Job5==4,1,0)] + MD<-MD[,Technician:=ifelse(Score_Job1==3 | Score_Job2==3 | Score_Job3==3 | Score_Job4==3 | Score_Job5==3,1,0)] + MD<-MD[,Expert:=ifelse(Score_Job1==2 | Score_Job2==2 | Score_Job3==2 | Score_Job4==2 | Score_Job5==2,1,0)] + MD<-MD[,Manager:=ifelse(Score_Job1==1 | Score_Job2==1 | Score_Job3==1 | Score_Job4==1 | Score_Job5==1,1,0)] + + MD<-MD[,Aid_Per:=Aid/Size] + MD<-MD[,Ratio_Aid_Per:=Aid_Per/NetIncome] + + MD<-MD[Size>1,HFemale:=ifelse(HSex=="Female",1,0)] + MD<-MD[,HSex:=ifelse(HSex=="Male",1,0)] + MD<-MD[,HActivityState:=ifelse(HActivityState=="Employed",1,0)] + + + MD<-MD[,Ratio_NEmployed:=NEmployed/Size] + MD<-MD[,Square_NEmployed:=Ratio_NEmployed^2] + + MD<-MD[,Ratio_NLiterate:=NLiterate/Size] + MD<-MD[,Square_NLiterate:=Ratio_NLiterate^2] + + MD<-MD[,Rental_House:=ifelse(tenure=="Rented",1,0)] + MD<-MD[,Mortgage_House:=ifelse(tenure=="Mortgage",1,0)] + MD<-MD[,Own_House:=ifelse(tenure=="OwnLandandBuilding",1,0)] + MD<-MD[,Oghafi_House:=ifelse(tenure=="Apartment",1,0)] + MD<-MD[,Metal_Skeleton:=ifelse(skeleton=="metal",1,0)] + MD<-MD[,Concrete_Skeleton:=ifelse(skeleton=="concrete",1,0)] + MD<-MD[,Other_Skeleton:=ifelse(skeleton=="other",1,0)] + MD<-MD[,BrickSteel_StoneSteel_constmat:=ifelse(constmat=="BrickSteel_StoneSteel",1,0)] + MD<-MD[,Brickwood_Stonewood_constmat:=ifelse(constmat=="Brickwood_Stonewood",1,0)] + MD<-MD[,CementBlocks_constmat:=ifelse(constmat=="CementBlocks",1,0)] + MD<-MD[,AllBrick_Stone_constmat:=ifelse(constmat=="AllBrick_Stone",1,0)] + MD<-MD[,Allwood_constmat:=ifelse(constmat=="Allwood",1,0)] + MD<-MD[,SundriedBrickwood_constmat:=ifelse(constmat=="SundriedBrickwood",1,0)] + MD<-MD[,SundriedBrickmud_constmat:=ifelse(constmat=="SundriedBrickmud",1,0)] + MD<-MD[,Phone:=ifelse(phone=="True",1,0)] + MD<-MD[,Bike:=ifelse(bike=="True",1,0)] + MD<-MD[,Radio:=ifelse(radio=="True",1,0)] + MD<-MD[,Cassette:=ifelse(cassette=="True",1,0)] + MD<-MD[,Tvbw:=ifelse(tvbw=="True",1,0)] + MD<-MD[,Tvcr:=ifelse(tvcr=="True",1,0)] + MD<-MD[,Vcr:=ifelse(vcr=="True",1,0)] + MD<-MD[,CellPhone:=ifelse(cellphone=="True",1,0)] + MD<-MD[,Freezer:=ifelse(freezer=="True",1,0)] + MD<-MD[,Refrigerator:=ifelse(refrigerator=="True",1,0)] + MD<-MD[,Frez_Refrig:=ifelse(frez_refrig=="True",1,0)] + MD<-MD[,Oven:=ifelse(oven=="True",1,0)] + MD<-MD[,Vacuum:=ifelse(vacuum=="True",1,0)] + MD<-MD[,Washer:=ifelse(washer=="True",1,0)] + MD<-MD[,Sewing:=ifelse(sewing=="True",1,0)] + MD<-MD[,Fan:=ifelse(fan=="True",1,0)] + MD<-MD[,Cooler_Water_Movable:=ifelse(pipewater=="True",1,0)] + MD<-MD[,Cooler_Gas_Movable:=ifelse(cooler_gas_movable=="True",1,0)] + MD<-MD[,Dishwasher:=ifelse(dishwasher=="True",1,0)] + MD<-MD[,Microwave:=ifelse(Microwave=="True",1,0)] + MD<-MD[,None:=ifelse(none=="True",1,0)] + MD<-MD[,Pipewater:=ifelse(pipewater=="True",1,0)] + MD<-MD[,Electricity:=ifelse(electricity=="True",1,0)] + MD<-MD[,Pipegas:=ifelse(pipegas=="True",1,0)] + MD<-MD[,Kitchen:=ifelse(kitchen=="True",1,0)] + MD<-MD[,Cooler:=ifelse(cooler=="True",1,0)] + MD<-MD[,CentralCooler:=ifelse(centralcooler=="True",1,0)] + MD<-MD[,CentralHeat:=ifelse(centralheat=="True",1,0)] + MD<-MD[,Pakage:=ifelse(pakage=="True",1,0)] + MD<-MD[,Cooler_Gas:=ifelse(cooler_gas=="True",1,0)] + #MD<-MD[,UnexpectedEvent_Month:=ifelse(party_month=="True" | ceremony_month=="True" | homerepaire_month=="True" | bastari_month=="True" | operation_month=="True",1,0) ] + + MD<-MD[,Car:=ifelse(car=="True",1,0)] + MD<-MD[,Bathroom:=ifelse(bathroom=="True",1,0)] + MD<-MD[,Computer:=ifelse(computer=="True",1,0)] + MD<-MD[,Internet:=ifelse(internet=="True",1,0)] + MD<-MD[,Motorcycle:=ifelse(motorcycle=="True",1,0)] + MD<-MD[,Water:=ifelse(pipewater=="True",1,0)] + MD<-MD[,Gas:=ifelse(pipegas=="True",1,0)] + MD<-MD[,Sewage:=ifelse(ego=="True",1,0)] + MD<-MD[,KarosineCook:=ifelse(cookfuel=="karosine",1,0)] + MD<-MD[,KarosineHeat:=ifelse(heatfuel=="karosine",1,0)] + MD<-MD[,GasHeat:=ifelse(heatfuel=="gas",1,0)] + MD<-MD[,Pipedgas_CookFuel:=ifelse(cookfuel=="pipedgas",1,0)] + MD<-MD[,Pipedgas_HeatFuel:=ifelse(heatfuel=="pipedgas",1,0)] + MD<-MD[,Pipedgas_HotWater:=ifelse(hotwater=="pipedgas",1,0)] + + MD[ProvinceCode==0,ProvinceName:="Markazi"] + MD[ProvinceCode==1,ProvinceName:="Gilan"] + MD[ProvinceCode==2,ProvinceName:="Mazandaran"] + MD[ProvinceCode==3,ProvinceName:="Az_Sharghi"] + MD[ProvinceCode==4,ProvinceName:="Az_Gharbi"] + MD[ProvinceCode==5,ProvinceName:="Kermanshah"] + MD[ProvinceCode==6,ProvinceName:="Khoozestan"] + MD[ProvinceCode==7,ProvinceName:="Fars"] + MD[ProvinceCode==8,ProvinceName:="Kerman"] + MD[ProvinceCode==9,ProvinceName:="Khorasan_Razavi"] + MD[ProvinceCode==10,ProvinceName:="Esfahan"] + MD[ProvinceCode==11,ProvinceName:="Sistan"] + MD[ProvinceCode==12,ProvinceName:="Kordestan"] + MD[ProvinceCode==13,ProvinceName:="Hamedan"] + MD[ProvinceCode==14,ProvinceName:="Chaharmahal"] + MD[ProvinceCode==15,ProvinceName:="Lorestan"] + MD[ProvinceCode==16,ProvinceName:="Ilam"] + MD[ProvinceCode==17,ProvinceName:="Kohkilooye"] + MD[ProvinceCode==18,ProvinceName:="Booshehr"] + MD[ProvinceCode==19,ProvinceName:="Zanjan"] + MD[ProvinceCode==20,ProvinceName:="Semnan"] + MD[ProvinceCode==21,ProvinceName:="Yazd"] + MD[ProvinceCode==22,ProvinceName:="Hormozgan"] + MD[ProvinceCode==23,ProvinceName:="Tehran"] + MD[ProvinceCode==24,ProvinceName:="Ardebil"] + MD[ProvinceCode==25,ProvinceName:="Ghom"] + MD[ProvinceCode==26,ProvinceName:="Ghazvin"] + MD[ProvinceCode==27,ProvinceName:="Golestan"] + MD[ProvinceCode==28,ProvinceName:="Khorasan_Shomali"] + MD[ProvinceCode==29,ProvinceName:="Khorasan_Jonoobi"] + MD[ProvinceCode==30,ProvinceName:="Alborz"] + + Data<-MD[,.(HHID,Region,cluster3,NewArea,NewArea_Name,Year,ProvinceName,HSex,HAge,Square_HAge,NKids,HActivityState,HEduYears, + Size,Weight,NUniv,Ratio_NUniv,Square_NUniv,EqSizeOECD,EqSizeCalory,FoodKCaloriesHH_Per,FoodProtein_Per,Ratio_TOriginalFoodExpenditure, + TFoodKCaloriesHH_Per,Rooms,Area,Area_Per,Log_Area_Per,Square_Area_Per,Ratio_Amusement_Exp,Ratio_MetrPrice,Ratio_Hygiene_Exp, + Ratio_Total_Exp_Month_nondurable,Ratio_Medical_Exp,Ratio_Furniture_Exp,Ratio_Cloth_Exp,Ratio_HouseandEnergy_Exp,Ratio_ServiceExp, + Ratio_Durable_Exp,Ratio_Education_per,Ratio_Medicine,Decile,Percentile,InitialPoor,FinalPoor, + FPLine,PovertyLine,Engel,HHEngle,Total_Exp_Month_Per_nondurable,Goosht_Grams_Per,Morgh_Grams_Per, + Mahi_Grams_Per,Mive_Grams_Per,Nan_Grams_Per,Sibzamini_Grams_Per,Makarooni_Grams_Per,Khoshkbar_Grams_Per,T_Meat_Grams_per, + T_Inferior_Grams_Per,Pub_Employee,Prv_Employee,Cooperative_Employee,Simple_Jobs_Staff,Opreators_machinery_equipment,Craftsman, + Skilled_staff_agriculture_forestr_fishing,Staff_service_sales,Office_staff,Technician,Expert,Manager,Ratio_Aid_Per,HFemale, + NEmployed,Ratio_NEmployed,Square_NEmployed,NLiterate,Ratio_NLiterate,Square_NLiterate,Rental_House,Mortgage_House,Own_House, + Oghafi_House,Metal_Skeleton,Concrete_Skeleton,Other_Skeleton,BrickSteel_StoneSteel_constmat,Brickwood_Stonewood_constmat, + CementBlocks_constmat,AllBrick_Stone_constmat,Allwood_constmat,SundriedBrickwood_constmat,SundriedBrickmud_constmat,Car,Bike, + Radio,Bathroom,Computer,Internet,Motorcycle,Cassette,Tvbw,Tvcr,Vcr,CellPhone,Freezer,Refrigerator,Frez_Refrig,Oven,Vacuum,Washer, + Sewing,Fan,Cooler_Water_Movable,Cooler_Gas_Movable,Dishwasher,Microwave,None,Pipewater,Electricity,Pipegas,Kitchen,Cooler, + CentralCooler,CentralHeat,Pakage,Cooler_Gas,Water,Gas,Sewage,KarosineCook,KarosineHeat,GasHeat,Pipedgas_CookFuel,Pipedgas_HeatFuel,Pipedgas_HotWater)] + save(Data, file=paste0(Settings$HEISProcessedPath,"Y",year,"Data.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/Real Deciles (Additional Calculations).R b/R/Archive/June 2020 (removed code files)/Real Deciles (Additional Calculations).R new file mode 100644 index 00000000..27f4b6b4 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Real Deciles (Additional Calculations).R @@ -0,0 +1,286 @@ +#Real Deciles (Additional Calsulations).R +# +# Copyright © 2020:Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + + Compare<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable)] + SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100),by=Region] + + + + C<-SMD[,.(.N,Max=max(Total_Exp_Month_Per_nondurable), + Min=min(Total_Exp_Month_Per_nondurable), + Mean=mean(Total_Exp_Month_Per_nondurable)), + by=.(Region,NewArea,NewArea_Name,Decile)] + + + + # FirstSMD<-SMD[,.(HHID,Region,NewArea_Name,NewArea_Name,Percentile,Decile)] + # FirstSMD<-FirstSMD[,Realfirstpoor:=ifelse(Decile %in% 1:2,1,0)] + # save(FirstSMD, file=paste0(Settings$HEISProcessedPath,"Y",year,"FirstSMD.rda")) + + + + B<-MD[,.(.N,Mean=mean(MetrPrice)), + by=.(Region,NewArea_Name,ProvinceCode)] + + BB<-MD[,.(.N,Mean=weighted.mean(MetrPrice,Weight)), + by=.(Region,NewArea_Name)] + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + # Index2 <- SMDIterationPoor[,.(PriceIndex= (weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1+ + # weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2)/2) + # ,by=.(Region,NewArea_Name)] + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + } + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea_Name,Region)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + MDD2<-MD[,.(HHID,Decile)] + names(MDD2)<-c("HHID","Decile_F") + save(MDD2,file = "MDD2.rda") + + #load( file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + #MD<-merge(MD,HHHouseProperties) + + #MD[,weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight), + # by=.(Region,Decile)][order(Region,Decile)] + + #MD[,weighted.mean(car=="True",Weight), + # by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(Cloth_Exp/Total_Exp_Month,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(Size,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(Region=="Urban",Weight), + by=.(Decile)][order(Decile)] + + MD[,weighted.mean(HActivityState=="Employed",Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(HEduYears>10,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(HEduYears>13,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + #MD[,weighted.mean(area/Size,Weight), + # by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(Amusement_Exp/Total_Exp_Month,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + A<-MD[,.(.N,Max=max(Total_Exp_Month_Per_nondurable), + Min=min(Total_Exp_Month_Per_nondurable), + Mean=mean(Total_Exp_Month_Per_nondurable)), + by=.(Region,NewArea,NewArea_Name,Decile)] + + AA<-MD[,.(.N,Max=max(Total_Exp_Month_Per_nondurable), + Min=min(Total_Exp_Month_Per_nondurable), + Mean=mean(Total_Exp_Month_Per_nondurable)), + by=.(Region,Decile)] + + D<-MD[,.(.N,Mean=weighted.mean(Durable_Exp/Size,Weight)), + by=.(Region,NewArea_Name,Decile)] + + DD<-MD[,.(.N,Mean=weighted.mean(Durable_Exp/Size,Weight)), + by=.(Region,Decile)] + + #write.csv(A,file = "A.csv") + #write.csv(AA,file = "AA.csv") + #write.csv(DD,file = "DD.csv") + write.csv(B,file = "B.csv") + #write.csv(C,file = "C.csv") + #write.csv(D,file = "D.csv") + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + MD<-merge(MD,HHHouseProperties) + + FractioninData<-MD[,.(Total_Exp_Month_Per_nondurable=weighted.mean(Total_Exp_Month_Per_nondurable,Weight), + tenure=weighted.mean(tenure=="OwnLandandBuilding",Weight), + HActivityState=weighted.mean(HActivityState=="Employed",Weight), + Car=weighted.mean(car=="True",Weight)), + by=c("Percentile_Nominal","Region")] + + #write.csv(FractioninData,file = "FractioninData.csv") + + Deciles<-MD[,.(HHID,Decile,Decile_Nominal,Region,ProvinceCode,HIndivNo,Weight)] + Deciles<-Deciles[,diff:=as.numeric(Decile)-as.numeric(Decile_Nominal)] + decileTest<-Deciles[,.(Positive=weighted.mean(diff>0,Weight), + Zero=weighted.mean(diff==0,Weight), + Minus=weighted.mean(diff<0,Weight)),by=ProvinceCode] + + decile7<-Deciles[,.(before=weighted.mean(as.numeric(Decile_Nominal)>7,Weight), + after=weighted.mean(as.numeric(Decile)>7,Weight)),by=ProvinceCode] + + ###Exp + x2<-FractioninData[Region=="Urban",.(Total_Exp_Month_Per_nondurable,Percentile_Nominal)] + x2$Percentile_Nominal <- factor(x2$Percentile_Nominal, levels = x2$Percentile_Nominal[order(x2$Percentile_Nominal)]) + ggplot(x2, aes(x = x2$Percentile_Nominal, y = x2$Total_Exp_Month_Per_nondurable)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + x2<-FractioninData[Region=="Rural",.(Total_Exp_Month_Per_nondurable,Percentile_Nominal)] + x2$Percentile_Nominal <- factor(x2$Percentile_Nominal, levels = x2$Percentile_Nominal[order(x2$Percentile_Nominal)]) + ggplot(x2, aes(x = x2$Percentile_Nominal, y = x2$Total_Exp_Month_Per_nondurable)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + ###Tenure + #x2<-FractioninData[Region=="Urban",.(tenure,Percentile)] + #x2$Percentile <- factor(x2$Percentile, levels = x2$Percentile[order(x2$tenure)]) + #ggplot(x2, aes(x = x2$Percentile, y = x2$tenure)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + #x2<-FractioninData[Region=="Rural",.(tenure,Percentile)] + #x2$Percentile <- factor(x2$Percentile, levels = x2$Percentile[order(x2$tenure)]) + #ggplot(x2, aes(x = x2$Percentile, y = x2$tenure)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + ###HActivity + #x2<-FractioninData[Region=="Urban",.(HActivityState,Percentile)] + #x2$Percentile <- factor(x2$Percentile, levels = x2$Percentile[order(x2$HActivityState)]) + #ggplot(x2, aes(x = x2$Percentile, y = x2$HActivityState)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + # x2<-FractioninData[Region=="Rural",.(HActivityState,Percentile)] + #x2$Percentile <- factor(x2$Percentile, levels = x2$Percentile[order(x2$HActivityState)]) + #ggplot(x2, aes(x = x2$Percentile, y = x2$HActivityState)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + ###Car + #x2<-FractioninData[Region=="Urban",.(Car,Percentile)] + #x2$Percentile <- factor(x2$Percentile, levels = x2$Percentile[order(x2$Car)]) + #ggplot(x2, aes(x = x2$Percentile, y = x2$Car)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + #x2<-FractioninData[Region=="Rural",.(Car,Percentile)] + #x2$Percentile <- factor(x2$Percentile, levels = x2$Percentile[order(x2$Car)]) + #ggplot(x2, aes(x = x2$Percentile, y = x2$Car)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/Refah calculations.R b/R/Archive/June 2020 (removed code files)/Refah calculations.R new file mode 100644 index 00000000..2714dc9f --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Refah calculations.R @@ -0,0 +1,196 @@ +# Step 7,8,9 and other +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + + +year<-97 + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"job.rda")) + +MD<-merge(MD,job[,.(HHID,PubWageNetIncomeY,PrvWageNetIncomeY)],by=c("HHID")) + +MD[FinalPoor==1,weighted.mean(Total_Exp_Month_Per,Weight),by="Region"] + +MD[FinalPoor==1 & PovertyLine-Total_Exp_Month_Per>0, + sum((PovertyLine-Total_Exp_Month_Per)*Size*Weight),by="Region"] + +MD[FinalPoor==1, + sum((PovertyLine-Total_Exp_Month_Per)*Size*Weight)] + +MD[FinalPoor==1 & PovertyLine-Total_Exp_Month_Per_nondurable>0, + sum((PovertyLine-Total_Exp_Month_Per_nondurable)*Size*Weight),by="Region"] + +MD[FinalPoor==1 & PovertyLine-Total_Exp_Month_Per_nondurable>0, + sum((PovertyLine-Total_Exp_Month_Per_nondurable)*Size*Weight)] + +MD[NewArea==2301,sum(Weight*Size)] + +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region)][order(Region)] + +MD[,weighted.mean(Bundle_Value,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(Bundle_Value,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(Bundle_Value,Weight),by=.(Region)][order(Region)] + +MD[,weighted.mean(HHEngle,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(HHEngle,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(HHEngle,Weight),by=.(Region)][order(Region)] + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"RetirementWage.rda")) +MD<-merge(MD,RetirementWageData,by="HHID",all.x = TRUE) + +RT<-MD[,.(HHID,Region,HAge,HActivityState,Decile,retirement,Weight)] +RT[is.na(RT)] <- 0 +RT[,Old:=ifelse(retirement>0 & HAge>48,1,0)] +RT[,weighted.mean(Old,Weight)] +RT[,weighted.mean(Old,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(Old,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(Old,Weight),by=Region][order(Region)] + +RT[,Old1:=ifelse(retirement>0 & HAge>48 & + (PubWageNetIncomeY==0 & PrvWageNetIncomeY==0 & + BussNetIncomeY==0 & AgriNetIncomeY==0),1,0)] +RT[,weighted.mean(Old1,Weight)] +RT[,weighted.mean(Old1,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(Old1,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(Old1,Weight),by=Region][order(Region)] + +RT[,Old2:=ifelse(retirement>0 & HAge>48 & HActivityState!="Employed" & + (PubWageNetIncomeY>0 | PrvWageNetIncomeY>0 | + BussNetIncomeY>0 | AgriNetIncomeY>0),1,0)] +RT[,weighted.mean(Old2,Weight)] +RT[,weighted.mean(Old2,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(Old2,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(Old2,Weight),by=Region][order(Region)] + +RT[,Old3:=ifelse(retirement>0 & HAge>48 & HActivityState=="Employed" & + (PubWageNetIncomeY>0 | PrvWageNetIncomeY>0 | + BussNetIncomeY>0 | AgriNetIncomeY>0),1,0)] +RT[,weighted.mean(Old3,Weight)] +RT[,weighted.mean(Old3,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(Old3,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(Old3,Weight),by=Region][order(Region)] + + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"TotalDurable.rda")) +RT<-merge(RT,TotalDurable[,.(HHID,Premium_gheyredarmani_mostakhdem, + Premium_gheyredarmani_karfarma,Premium_retirement_mostakhdem, + Premium_retirement_karfarma,Premium_retirement_general, + Premium_retirement_Rural_Household,Premium_retirement_Rural_Govern, + Premium_retirement_bank)]) + +RT[,pub1:=ifelse(HActivityState=="Employed" & + PubWageNetIncomeY>0 ,1,0)] +RT[,weighted.mean(pub1,Weight)] +RT[,weighted.mean(pub1,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(pub1,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(pub1,Weight),by=Region][order(Region)] + + +RT[,pub2:=ifelse(PubWageNetIncomeY>0 ,1,0)] +RT[,weighted.mean(pub2,Weight)] +RT[,weighted.mean(pub2,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(pub2,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(pub2,Weight),by=Region][order(Region)] + + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"PubWage.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"PrvWages.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"BussIncome.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"AgriWages.rda")) + +RT<-merge(RT,PubWageData[,.(HHID,PubWageNetIncomeY)],all.x = TRUE) +RT<-merge(RT,PrvWageData[,.(HHID,PrvWageNetIncomeY)],all.x = TRUE) +RT<-merge(RT,BussIncomeData[,.(HHID,BussNetIncomeY)],all.x = TRUE) +RT<-merge(RT,AgriIncomeData[,.(HHID,AgriNetIncomeY)],all.x = TRUE) +RT[is.na(RT)] <- 0 + +a<-RT[AgriNetIncomeY!=0,.(HHID,Region,AgriNetIncomeY, + Premium_gheyredarmani_mostakhdem,Weight)] +a[,weighted.mean(Premium_gheyredarmani_mostakhdem>0,Weight),by=Region] + +b<-RT[BussNetIncomeY!=0,.(HHID,Region,BussNetIncomeY, + Premium_gheyredarmani_mostakhdem,Weight)] +b[,weighted.mean(Premium_gheyredarmani_mostakhdem>0,Weight),by=Region] + +RT[,P:=ifelse(HActivityState=="Employed",1 ,0)] +RT[,weighted.mean(P,Weight)] +RT[,weighted.mean(P,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P,Weight),by=Region][order(Region)] + +RT[,P:=ifelse(HActivityState=="Income without Work",1 ,0)] +RT[,weighted.mean(P,Weight)] +RT[,weighted.mean(P,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P,Weight),by=Region][order(Region)] + + +RT[,P:=ifelse(PubWageNetIncomeY>0 | PrvWageNetIncomeY>0 | + BussNetIncomeY>0 | AgriNetIncomeY>0,1 ,0)] +RT[,weighted.mean(P,Weight)] +RT[,weighted.mean(P,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P,Weight),by=Region][order(Region)] + + +RT[,P1:=ifelse((Premium_gheyredarmani_mostakhdem>0 | + Premium_gheyredarmani_karfarma>0) & + HActivityState=="Employed",1 ,0)] +RT[,weighted.mean(P1,Weight)] +RT[,weighted.mean(P1,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P1,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P1,Weight),by=Region][order(Region)] + +RT[,P2:=ifelse(Premium_gheyredarmani_karfarma>0 & HActivityState=="Employed",1 ,0)] +RT[,weighted.mean(P2,Weight)] +RT[,weighted.mean(P2,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P2,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P2,Weight),by=Region][order(Region)] + +RT[,P3:=ifelse(Premium_retirement_mostakhdem>0,1 ,0)] +RT[,weighted.mean(P3,Weight)] +RT[,weighted.mean(P3,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P4:=ifelse(Premium_retirement_karfarma>0,1 ,0)] +RT[,weighted.mean(P4,Weight)] +RT[,weighted.mean(P4,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P5:=ifelse(Premium_retirement_general>0,1 ,0)] +RT[,weighted.mean(P5,Weight)] +RT[,weighted.mean(P5,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P6:=ifelse(Premium_retirement_Rural_Household>0,1 ,0)] +RT[,weighted.mean(P6,Weight)] +RT[,weighted.mean(P6,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P7:=ifelse(Premium_retirement_Rural_Govern>0,1 ,0)] +RT[,weighted.mean(P7,Weight)] +RT[,weighted.mean(P7,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P8:=ifelse(Premium_retirement_bank>0,1 ,0)] +RT[,weighted.mean(P8,Weight)] +RT[,weighted.mean(P8,Weight),by=.(Region,Decile)][order(Region,Decile)] + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Some Calculations fo food.R b/R/Archive/June 2020 (removed code files)/Some Calculations fo food.R new file mode 100644 index 00000000..72196603 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Some Calculations fo food.R @@ -0,0 +1,102 @@ +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +library(dplyr) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +#year<-97 + +TS <- data.table(Year=NA_integer_,Berenj=NA_real_, + Gav=NA_real_,Goosfand=NA_real_, + Shir=NA_real_,Panir=NA_real_, + Tokhmemorgh=NA_real_, + Morgh=NA_real_,MacaroniGram=NA_real_, + Rob_GojeGram=NA_real_,PiazGram=NA_real_, + SibzaminiGram=NA_real_, + Decile=NA_real_)[0] + + +for (year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:", year, "\n")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoors.rda")) + +MD<-merge(MD,Total[,.(HHID,`011164`,MacaroniGram,`011231`,`011232`,PoultryMeat_MGram, + PoultryMeat_NMGram,`011411`,MilkGrams,`011428`,`011429`, + Cheese_PasturizedGram,Cheese_NonPasturizedGram, + `011921`,Rob_GojeGram,`011441`,`011442`,Egg_MashinGram, + Egg_NonMashinGram,`011731`,SibzaminiGram, + `011732`,PiazGram,`011211`,`011212`, + CowMeatGram,SheepMeatGram, + Rice_TaromGram,Rice_DomsiahGram)],by="HHID") + +m<-MD[,.(weighted.mean(`011164`/Total_Exp_Month_nondurable,Weight), + weighted.mean((`011231`+`011232`)/Total_Exp_Month_nondurable,Weight), + weighted.mean(`011411`/Total_Exp_Month_nondurable,Weight), + weighted.mean((`011428`+`011429`)/Total_Exp_Month_nondurable,Weight), + weighted.mean(`011921`/Total_Exp_Month_nondurable,Weight), + weighted.mean((`011441`+`011442`)/Total_Exp_Month_nondurable,Weight), + weighted.mean(`011731`/Total_Exp_Month_nondurable,Weight), + weighted.mean(`011732`/Total_Exp_Month_nondurable,Weight)),by=Decile][order(Decile)] + +z<-MD[,.(weighted.mean(`011164`/FoodExpenditure,Weight), + weighted.mean((`011231`+`011232`)/FoodExpenditure,Weight), + weighted.mean(`011411`/FoodExpenditure,Weight), + weighted.mean((`011428`+`011429`)/FoodExpenditure,Weight), + weighted.mean(`011921`/FoodExpenditure,Weight), + weighted.mean((`011441`+`011442`)/FoodExpenditure,Weight), + weighted.mean(`011731`/FoodExpenditure,Weight), + weighted.mean(`011732`/FoodExpenditure,Weight)),by=Decile][order(Decile)] + +y<-MD[,.(weighted.mean(`011164`,Weight), + weighted.mean(`011231`+`011232`,Weight), + weighted.mean(`011411`,Weight), + weighted.mean(`011428`+`011429`,Weight), + weighted.mean(`011921`,Weight), + weighted.mean(`011441`+`011442`,Weight), + weighted.mean(`011731`,Weight), + weighted.mean(`011732`,Weight)),by=Decile][order(Decile)] + + +x<-MD[,.(MacaroniGram=weighted.mean(MacaroniGram,Weight), + PoultryMeat_Gram=weighted.mean(PoultryMeat_MGram+PoultryMeat_NMGram,Weight), + MilkGrams=weighted.mean(MilkGrams,Weight), + CheeseGram=weighted.mean(Cheese_PasturizedGram+Cheese_NonPasturizedGram,Weight), + Rob_GojeGram=weighted.mean(Rob_GojeGram,Weight), + Egg_Gram=weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight), + SibzaminiGram=weighted.mean(SibzaminiGram,Weight), + PiazGram=weighted.mean(PiazGram,Weight), + CowMeatGram=weighted.mean(CowMeatGram,Weight), + SheepMeatGram=weighted.mean(SheepMeatGram,Weight)),by=Decile][order(Decile)] + +MD[,weighted.mean(Size,Weight),by=Decile][order(Decile)] +MD[,weighted.mean(FoodKCaloriesHH_Per,Weight),by=Decile][order(Decile)] + + +A<-MD[,.(Morgh=weighted.mean(PoultryMeat_MGram,Weight), + Shir= weighted.mean(MilkGrams,Weight), + Panir=weighted.mean(Cheese_PasturizedGram,Weight), + Tokhmemorgh=weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight), + Berenj=weighted.mean(Rice_TaromGram+Rice_DomsiahGram,Weight), + Gav=weighted.mean(CowMeatGram,Weight), + Goosfand=weighted.mean(SheepMeatGram,Weight), + Rob_GojeGram=weighted.mean(Rob_GojeGram,Weight), + SibzaminiGram=weighted.mean(SibzaminiGram,Weight), + PiazGram=weighted.mean(PiazGram,Weight), + MacaroniGram=weighted.mean(MacaroniGram,Weight)),by=Decile][order(Decile)] +A[,Year:=year] +TS <- rbind(TS,A) + + +} + +#TS<-TS[as.numeric(Decile)<7] + +#ggplot(TS, aes( y=Morgh, x=Year,fill=Decile)) + + # geom_bar(position="dodge", stat="identity") + theme_bw() + + # theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) diff --git a/R/Archive/June 2020 (removed code files)/Some Specific Calculations.R b/R/Archive/June 2020 (removed code files)/Some Specific Calculations.R new file mode 100644 index 00000000..60f4a09a --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Some Specific Calculations.R @@ -0,0 +1,51 @@ +# Some Specific Calculations.R + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Some Specific Calculations =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"LivestockExp.rda")) +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BirdsMeatExp.rda")) +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"FishandShrimpExp.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Behdasht1",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Behdasht2",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Behdasht3",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable17",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable18",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable19",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable20",".rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Durable21",".rda")) + +Specific<-merge(LivestockData,BirdsMeatData,all = TRUE) +Specific<-merge(Specific,FishandShrimpData,all = TRUE) +Specific<-merge(Specific,Behdasht1,all = TRUE) +Specific<-merge(Specific,Behdasht2,all = TRUE) +Specific<-merge(Specific,Behdasht3,all = TRUE) +Specific<-merge(Specific,Durable17,all = TRUE) +Specific<-merge(Specific,Durable18,all = TRUE) +Specific<-merge(Specific,Durable19,all = TRUE) +Specific<-merge(Specific,Durable20,all = TRUE) +Specific<-merge(Specific,Durable21,all = TRUE) + +Specific[is.na(Specific)] <- 0 +save(Specific, file=paste0(Settings$HEISProcessedPath,"Y",year,"Specific.rda")) + +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) + + diff --git a/R/Archive/June 2020 (removed code files)/Step 2-2.R b/R/Archive/June 2020 (removed code files)/Step 2-2.R new file mode 100644 index 00000000..5067097f --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Step 2-2.R @@ -0,0 +1,449 @@ +#172- Step 2-2.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculationg Per values =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN1.rda")) + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + + #MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all.x = TRUE) + MD<-MD[Size!=0 & OriginalFoodExpenditure!=0 & !is.na(FoodKCaloriesHH)] + #MD[,Home_Per_Metr:=MetrPrice/EqSizeOECD] + + #Calculate Per Values + + MD[,EqSizeCalory := + NAge0B *(Settings$ KCaloryNeed_B0 /Calorie_Need_WorldBank)+ + NAge1B *(Settings$ KCaloryNeed_B1 /Calorie_Need_WorldBank)+ + NAge2B *(Settings$ KCaloryNeed_B2 /Calorie_Need_WorldBank)+ + NAge3B *(Settings$ KCaloryNeed_B3 /Calorie_Need_WorldBank)+ + NAge4B *(Settings$ KCaloryNeed_B4 /Calorie_Need_WorldBank)+ + NAge5B *(Settings$ KCaloryNeed_B5 /Calorie_Need_WorldBank)+ + NAge6B *(Settings$ KCaloryNeed_B6 /Calorie_Need_WorldBank)+ + NAge7B *(Settings$ KCaloryNeed_B7 /Calorie_Need_WorldBank)+ + NAge8B *(Settings$ KCaloryNeed_B8 /Calorie_Need_WorldBank)+ + NAge9B *(Settings$ KCaloryNeed_B9 /Calorie_Need_WorldBank)+ + NAge10B *(Settings$ KCaloryNeed_B10 /Calorie_Need_WorldBank)+ + NAge11B *(Settings$ KCaloryNeed_B11 /Calorie_Need_WorldBank)+ + NAge12B *(Settings$ KCaloryNeed_B12 /Calorie_Need_WorldBank)+ + NAge13B *(Settings$ KCaloryNeed_B13 /Calorie_Need_WorldBank)+ + NAge14B *(Settings$ KCaloryNeed_B14 /Calorie_Need_WorldBank)+ + NAge15B *(Settings$ KCaloryNeed_B15 /Calorie_Need_WorldBank)+ + NAge16B *(Settings$ KCaloryNeed_B16 /Calorie_Need_WorldBank)+ + NAge17B *(Settings$ KCaloryNeed_B17 /Calorie_Need_WorldBank)+ + NAge18B *(Settings$ KCaloryNeed_B18 /Calorie_Need_WorldBank)+ + NAge19B *(Settings$ KCaloryNeed_B19 /Calorie_Need_WorldBank)+ + NAge20B *(Settings$ KCaloryNeed_B20 /Calorie_Need_WorldBank)+ + NAge21B *(Settings$ KCaloryNeed_B21 /Calorie_Need_WorldBank)+ + NAge22B *(Settings$ KCaloryNeed_B22 /Calorie_Need_WorldBank)+ + NAge23B *(Settings$ KCaloryNeed_B23 /Calorie_Need_WorldBank)+ + NAge24B *(Settings$ KCaloryNeed_B24 /Calorie_Need_WorldBank)+ + NAge25B *(Settings$ KCaloryNeed_B25 /Calorie_Need_WorldBank)+ + NAge26B *(Settings$ KCaloryNeed_B26 /Calorie_Need_WorldBank)+ + NAge27B *(Settings$ KCaloryNeed_B27 /Calorie_Need_WorldBank)+ + NAge28B *(Settings$ KCaloryNeed_B28 /Calorie_Need_WorldBank)+ + NAge29B *(Settings$ KCaloryNeed_B29 /Calorie_Need_WorldBank)+ + NAge30B *(Settings$ KCaloryNeed_B30 /Calorie_Need_WorldBank)+ + NAge31B *(Settings$ KCaloryNeed_B31 /Calorie_Need_WorldBank)+ + NAge32B *(Settings$ KCaloryNeed_B32 /Calorie_Need_WorldBank)+ + NAge33B *(Settings$ KCaloryNeed_B33 /Calorie_Need_WorldBank)+ + NAge34B *(Settings$ KCaloryNeed_B34 /Calorie_Need_WorldBank)+ + NAge35B *(Settings$ KCaloryNeed_B35 /Calorie_Need_WorldBank)+ + NAge36B *(Settings$ KCaloryNeed_B36 /Calorie_Need_WorldBank)+ + NAge37B *(Settings$ KCaloryNeed_B37 /Calorie_Need_WorldBank)+ + NAge38B *(Settings$ KCaloryNeed_B38 /Calorie_Need_WorldBank)+ + NAge39B *(Settings$ KCaloryNeed_B39 /Calorie_Need_WorldBank)+ + NAge40B *(Settings$ KCaloryNeed_B40 /Calorie_Need_WorldBank)+ + NAge41B *(Settings$ KCaloryNeed_B41 /Calorie_Need_WorldBank)+ + NAge42B *(Settings$ KCaloryNeed_B42 /Calorie_Need_WorldBank)+ + NAge43B *(Settings$ KCaloryNeed_B43 /Calorie_Need_WorldBank)+ + NAge44B *(Settings$ KCaloryNeed_B44 /Calorie_Need_WorldBank)+ + NAge45B *(Settings$ KCaloryNeed_B45 /Calorie_Need_WorldBank)+ + NAge46B *(Settings$ KCaloryNeed_B46 /Calorie_Need_WorldBank)+ + NAge47B *(Settings$ KCaloryNeed_B47 /Calorie_Need_WorldBank)+ + NAge48B *(Settings$ KCaloryNeed_B48 /Calorie_Need_WorldBank)+ + NAge49B *(Settings$ KCaloryNeed_B49 /Calorie_Need_WorldBank)+ + NAge50B *(Settings$ KCaloryNeed_B50 /Calorie_Need_WorldBank)+ + NAge51B *(Settings$ KCaloryNeed_B51 /Calorie_Need_WorldBank)+ + NAge52B *(Settings$ KCaloryNeed_B52 /Calorie_Need_WorldBank)+ + NAge53B *(Settings$ KCaloryNeed_B53 /Calorie_Need_WorldBank)+ + NAge54B *(Settings$ KCaloryNeed_B54 /Calorie_Need_WorldBank)+ + NAge55B *(Settings$ KCaloryNeed_B55 /Calorie_Need_WorldBank)+ + NAge56B *(Settings$ KCaloryNeed_B56 /Calorie_Need_WorldBank)+ + NAge57B *(Settings$ KCaloryNeed_B57 /Calorie_Need_WorldBank)+ + NAge58B *(Settings$ KCaloryNeed_B58 /Calorie_Need_WorldBank)+ + NAge59B *(Settings$ KCaloryNeed_B59 /Calorie_Need_WorldBank)+ + NAge60B *(Settings$ KCaloryNeed_B60 /Calorie_Need_WorldBank)+ + NAge61B *(Settings$ KCaloryNeed_B61 /Calorie_Need_WorldBank)+ + NAge62B *(Settings$ KCaloryNeed_B62 /Calorie_Need_WorldBank)+ + NAge63B *(Settings$ KCaloryNeed_B63 /Calorie_Need_WorldBank)+ + NAge64B *(Settings$ KCaloryNeed_B64 /Calorie_Need_WorldBank)+ + NAge65B *(Settings$ KCaloryNeed_B65 /Calorie_Need_WorldBank)+ + NAge66B *(Settings$ KCaloryNeed_B66 /Calorie_Need_WorldBank)+ + NAge67B *(Settings$ KCaloryNeed_B67 /Calorie_Need_WorldBank)+ + NAge68B *(Settings$ KCaloryNeed_B68 /Calorie_Need_WorldBank)+ + NAge69B *(Settings$ KCaloryNeed_B69 /Calorie_Need_WorldBank)+ + NAge70B *(Settings$ KCaloryNeed_B70 /Calorie_Need_WorldBank)+ + NAge71B *(Settings$ KCaloryNeed_B71 /Calorie_Need_WorldBank)+ + NAge72B *(Settings$ KCaloryNeed_B72 /Calorie_Need_WorldBank)+ + NAge73B *(Settings$ KCaloryNeed_B73 /Calorie_Need_WorldBank)+ + NAge74B *(Settings$ KCaloryNeed_B74 /Calorie_Need_WorldBank)+ + NAge75B *(Settings$ KCaloryNeed_B75 /Calorie_Need_WorldBank)+ + NAge76B *(Settings$ KCaloryNeed_B76 /Calorie_Need_WorldBank)+ + NAge77B *(Settings$ KCaloryNeed_B77 /Calorie_Need_WorldBank)+ + NAge78B *(Settings$ KCaloryNeed_B78 /Calorie_Need_WorldBank)+ + NAge79B *(Settings$ KCaloryNeed_B79 /Calorie_Need_WorldBank)+ + NAge80B *(Settings$ KCaloryNeed_B80 /Calorie_Need_WorldBank)+ + NAge81B *(Settings$ KCaloryNeed_B81 /Calorie_Need_WorldBank)+ + NAge82B *(Settings$ KCaloryNeed_B82 /Calorie_Need_WorldBank)+ + NAge83B *(Settings$ KCaloryNeed_B83 /Calorie_Need_WorldBank)+ + NAge84B *(Settings$ KCaloryNeed_B84 /Calorie_Need_WorldBank)+ + NAge85B *(Settings$ KCaloryNeed_B85 /Calorie_Need_WorldBank)+ + NAge86B *(Settings$ KCaloryNeed_B86 /Calorie_Need_WorldBank)+ + NAge87B *(Settings$ KCaloryNeed_B87 /Calorie_Need_WorldBank)+ + NAge88B *(Settings$ KCaloryNeed_B88 /Calorie_Need_WorldBank)+ + NAge89B *(Settings$ KCaloryNeed_B89 /Calorie_Need_WorldBank)+ + NAge90B *(Settings$ KCaloryNeed_B90 /Calorie_Need_WorldBank)+ + NAge91B *(Settings$ KCaloryNeed_B91 /Calorie_Need_WorldBank)+ + NAge92B *(Settings$ KCaloryNeed_B92 /Calorie_Need_WorldBank)+ + NAge93B *(Settings$ KCaloryNeed_B93 /Calorie_Need_WorldBank)+ + NAge94B *(Settings$ KCaloryNeed_B94 /Calorie_Need_WorldBank)+ + NAge95B *(Settings$ KCaloryNeed_B95 /Calorie_Need_WorldBank)+ + NAge96B *(Settings$ KCaloryNeed_B96 /Calorie_Need_WorldBank)+ + NAge97B *(Settings$ KCaloryNeed_B97 /Calorie_Need_WorldBank)+ + NAge98B *(Settings$ KCaloryNeed_B98 /Calorie_Need_WorldBank)+ + NAge99B *(Settings$ KCaloryNeed_B99 /Calorie_Need_WorldBank)+ + NAge0G *(Settings$ KCaloryNeed_G0 /Calorie_Need_WorldBank)+ + NAge1G *(Settings$ KCaloryNeed_G1 /Calorie_Need_WorldBank)+ + NAge2G *(Settings$ KCaloryNeed_G2 /Calorie_Need_WorldBank)+ + NAge3G *(Settings$ KCaloryNeed_G3 /Calorie_Need_WorldBank)+ + NAge4G *(Settings$ KCaloryNeed_G4 /Calorie_Need_WorldBank)+ + NAge5G *(Settings$ KCaloryNeed_G5 /Calorie_Need_WorldBank)+ + NAge6G *(Settings$ KCaloryNeed_G6 /Calorie_Need_WorldBank)+ + NAge7G *(Settings$ KCaloryNeed_G7 /Calorie_Need_WorldBank)+ + NAge8G *(Settings$ KCaloryNeed_G8 /Calorie_Need_WorldBank)+ + NAge9G *(Settings$ KCaloryNeed_G9 /Calorie_Need_WorldBank)+ + NAge10G *(Settings$ KCaloryNeed_G10 /Calorie_Need_WorldBank)+ + NAge11G *(Settings$ KCaloryNeed_G11 /Calorie_Need_WorldBank)+ + NAge12G *(Settings$ KCaloryNeed_G12 /Calorie_Need_WorldBank)+ + NAge13G *(Settings$ KCaloryNeed_G13 /Calorie_Need_WorldBank)+ + NAge14G *(Settings$ KCaloryNeed_G14 /Calorie_Need_WorldBank)+ + NAge15G *(Settings$ KCaloryNeed_G15 /Calorie_Need_WorldBank)+ + NAge16G *(Settings$ KCaloryNeed_G16 /Calorie_Need_WorldBank)+ + NAge17G *(Settings$ KCaloryNeed_G17 /Calorie_Need_WorldBank)+ + NAge18G *(Settings$ KCaloryNeed_G18 /Calorie_Need_WorldBank)+ + NAge19G *(Settings$ KCaloryNeed_G19 /Calorie_Need_WorldBank)+ + NAge20G *(Settings$ KCaloryNeed_G20 /Calorie_Need_WorldBank)+ + NAge21G *(Settings$ KCaloryNeed_G21 /Calorie_Need_WorldBank)+ + NAge22G *(Settings$ KCaloryNeed_G22 /Calorie_Need_WorldBank)+ + NAge23G *(Settings$ KCaloryNeed_G23 /Calorie_Need_WorldBank)+ + NAge24G *(Settings$ KCaloryNeed_G24 /Calorie_Need_WorldBank)+ + NAge25G *(Settings$ KCaloryNeed_G25 /Calorie_Need_WorldBank)+ + NAge26G *(Settings$ KCaloryNeed_G26 /Calorie_Need_WorldBank)+ + NAge27G *(Settings$ KCaloryNeed_G27 /Calorie_Need_WorldBank)+ + NAge28G *(Settings$ KCaloryNeed_G28 /Calorie_Need_WorldBank)+ + NAge29G *(Settings$ KCaloryNeed_G29 /Calorie_Need_WorldBank)+ + NAge30G *(Settings$ KCaloryNeed_G30 /Calorie_Need_WorldBank)+ + NAge31G *(Settings$ KCaloryNeed_G31 /Calorie_Need_WorldBank)+ + NAge32G *(Settings$ KCaloryNeed_G32 /Calorie_Need_WorldBank)+ + NAge33G *(Settings$ KCaloryNeed_G33 /Calorie_Need_WorldBank)+ + NAge34G *(Settings$ KCaloryNeed_G34 /Calorie_Need_WorldBank)+ + NAge35G *(Settings$ KCaloryNeed_G35 /Calorie_Need_WorldBank)+ + NAge36G *(Settings$ KCaloryNeed_G36 /Calorie_Need_WorldBank)+ + NAge37G *(Settings$ KCaloryNeed_G37 /Calorie_Need_WorldBank)+ + NAge38G *(Settings$ KCaloryNeed_G38 /Calorie_Need_WorldBank)+ + NAge39G *(Settings$ KCaloryNeed_G39 /Calorie_Need_WorldBank)+ + NAge40G *(Settings$ KCaloryNeed_G40 /Calorie_Need_WorldBank)+ + NAge41G *(Settings$ KCaloryNeed_G41 /Calorie_Need_WorldBank)+ + NAge42G *(Settings$ KCaloryNeed_G42 /Calorie_Need_WorldBank)+ + NAge43G *(Settings$ KCaloryNeed_G43 /Calorie_Need_WorldBank)+ + NAge44G *(Settings$ KCaloryNeed_G44 /Calorie_Need_WorldBank)+ + NAge45G *(Settings$ KCaloryNeed_G45 /Calorie_Need_WorldBank)+ + NAge46G *(Settings$ KCaloryNeed_G46 /Calorie_Need_WorldBank)+ + NAge47G *(Settings$ KCaloryNeed_G47 /Calorie_Need_WorldBank)+ + NAge48G *(Settings$ KCaloryNeed_G48 /Calorie_Need_WorldBank)+ + NAge49G *(Settings$ KCaloryNeed_G49 /Calorie_Need_WorldBank)+ + NAge50G *(Settings$ KCaloryNeed_G50 /Calorie_Need_WorldBank)+ + NAge51G *(Settings$ KCaloryNeed_G51 /Calorie_Need_WorldBank)+ + NAge52G *(Settings$ KCaloryNeed_G52 /Calorie_Need_WorldBank)+ + NAge53G *(Settings$ KCaloryNeed_G53 /Calorie_Need_WorldBank)+ + NAge54G *(Settings$ KCaloryNeed_G54 /Calorie_Need_WorldBank)+ + NAge55G *(Settings$ KCaloryNeed_G55 /Calorie_Need_WorldBank)+ + NAge56G *(Settings$ KCaloryNeed_G56 /Calorie_Need_WorldBank)+ + NAge57G *(Settings$ KCaloryNeed_G57 /Calorie_Need_WorldBank)+ + NAge58G *(Settings$ KCaloryNeed_G58 /Calorie_Need_WorldBank)+ + NAge59G *(Settings$ KCaloryNeed_G59 /Calorie_Need_WorldBank)+ + NAge60G *(Settings$ KCaloryNeed_G60 /Calorie_Need_WorldBank)+ + NAge61G *(Settings$ KCaloryNeed_G61 /Calorie_Need_WorldBank)+ + NAge62G *(Settings$ KCaloryNeed_G62 /Calorie_Need_WorldBank)+ + NAge63G *(Settings$ KCaloryNeed_G63 /Calorie_Need_WorldBank)+ + NAge64G *(Settings$ KCaloryNeed_G64 /Calorie_Need_WorldBank)+ + NAge65G *(Settings$ KCaloryNeed_G65 /Calorie_Need_WorldBank)+ + NAge66G *(Settings$ KCaloryNeed_G66 /Calorie_Need_WorldBank)+ + NAge67G *(Settings$ KCaloryNeed_G67 /Calorie_Need_WorldBank)+ + NAge68G *(Settings$ KCaloryNeed_G68 /Calorie_Need_WorldBank)+ + NAge69G *(Settings$ KCaloryNeed_G69 /Calorie_Need_WorldBank)+ + NAge70G *(Settings$ KCaloryNeed_G70 /Calorie_Need_WorldBank)+ + NAge71G *(Settings$ KCaloryNeed_G71 /Calorie_Need_WorldBank)+ + NAge72G *(Settings$ KCaloryNeed_G72 /Calorie_Need_WorldBank)+ + NAge73G *(Settings$ KCaloryNeed_G73 /Calorie_Need_WorldBank)+ + NAge74G *(Settings$ KCaloryNeed_G74 /Calorie_Need_WorldBank)+ + NAge75G *(Settings$ KCaloryNeed_G75 /Calorie_Need_WorldBank)+ + NAge76G *(Settings$ KCaloryNeed_G76 /Calorie_Need_WorldBank)+ + NAge77G *(Settings$ KCaloryNeed_G77 /Calorie_Need_WorldBank)+ + NAge78G *(Settings$ KCaloryNeed_G78 /Calorie_Need_WorldBank)+ + NAge79G *(Settings$ KCaloryNeed_G79 /Calorie_Need_WorldBank)+ + NAge80G *(Settings$ KCaloryNeed_G80 /Calorie_Need_WorldBank)+ + NAge81G *(Settings$ KCaloryNeed_G81 /Calorie_Need_WorldBank)+ + NAge82G *(Settings$ KCaloryNeed_G82 /Calorie_Need_WorldBank)+ + NAge83G *(Settings$ KCaloryNeed_G83 /Calorie_Need_WorldBank)+ + NAge84G *(Settings$ KCaloryNeed_G84 /Calorie_Need_WorldBank)+ + NAge85G *(Settings$ KCaloryNeed_G85 /Calorie_Need_WorldBank)+ + NAge86G *(Settings$ KCaloryNeed_G86 /Calorie_Need_WorldBank)+ + NAge87G *(Settings$ KCaloryNeed_G87 /Calorie_Need_WorldBank)+ + NAge88G *(Settings$ KCaloryNeed_G88 /Calorie_Need_WorldBank)+ + NAge89G *(Settings$ KCaloryNeed_G89 /Calorie_Need_WorldBank)+ + NAge90G *(Settings$ KCaloryNeed_G90 /Calorie_Need_WorldBank)+ + NAge91G *(Settings$ KCaloryNeed_G91 /Calorie_Need_WorldBank)+ + NAge92G *(Settings$ KCaloryNeed_G92 /Calorie_Need_WorldBank)+ + NAge93G *(Settings$ KCaloryNeed_G93 /Calorie_Need_WorldBank)+ + NAge94G *(Settings$ KCaloryNeed_G94 /Calorie_Need_WorldBank)+ + NAge95G *(Settings$ KCaloryNeed_G95 /Calorie_Need_WorldBank)+ + NAge96G *(Settings$ KCaloryNeed_G96 /Calorie_Need_WorldBank)+ + NAge97G *(Settings$ KCaloryNeed_G97 /Calorie_Need_WorldBank)+ + NAge98G *(Settings$ KCaloryNeed_G98 /Calorie_Need_WorldBank)+ + NAge99G *(Settings$ KCaloryNeed_G99 /Calorie_Need_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_WorldBank)] + + MD[,EqSizeCalory2 := + NAge0_A_B *(Settings$ KCaloryNeed_A_B0 /Calorie_Need_Anstitoo)+ + NAge1_A_B *(Settings$ KCaloryNeed_A_B1 /Calorie_Need_Anstitoo)+ + NAge2_A_B *(Settings$ KCaloryNeed_A_B2 /Calorie_Need_Anstitoo)+ + NAge3_A_B *(Settings$ KCaloryNeed_A_B3 /Calorie_Need_Anstitoo)+ + NAge4_A_B *(Settings$ KCaloryNeed_A_B4 /Calorie_Need_Anstitoo)+ + NAge5_A_B *(Settings$ KCaloryNeed_A_B5 /Calorie_Need_Anstitoo)+ + NAge6_A_B *(Settings$ KCaloryNeed_A_B6 /Calorie_Need_Anstitoo)+ + NAge7_A_B *(Settings$ KCaloryNeed_A_B7 /Calorie_Need_Anstitoo)+ + NAge8_A_B *(Settings$ KCaloryNeed_A_B8 /Calorie_Need_Anstitoo)+ + NAge9_A_B *(Settings$ KCaloryNeed_A_B9 /Calorie_Need_Anstitoo)+ + NAge10_A_B *(Settings$ KCaloryNeed_A_B10 /Calorie_Need_Anstitoo)+ + NAge11_A_B *(Settings$ KCaloryNeed_A_B11 /Calorie_Need_Anstitoo)+ + NAge12_A_B *(Settings$ KCaloryNeed_A_B12 /Calorie_Need_Anstitoo)+ + NAge13_A_B *(Settings$ KCaloryNeed_A_B13 /Calorie_Need_Anstitoo)+ + NAge14_A_B *(Settings$ KCaloryNeed_A_B14 /Calorie_Need_Anstitoo)+ + NAge15_A_B *(Settings$ KCaloryNeed_A_B15 /Calorie_Need_Anstitoo)+ + NAge16_A_B *(Settings$ KCaloryNeed_A_B16 /Calorie_Need_Anstitoo)+ + NAge17_A_B *(Settings$ KCaloryNeed_A_B17 /Calorie_Need_Anstitoo)+ + NAge18_A_B *(Settings$ KCaloryNeed_A_B18 /Calorie_Need_Anstitoo)+ + NAge19_A_B *(Settings$ KCaloryNeed_A_B19 /Calorie_Need_Anstitoo)+ + NAge20_A_B *(Settings$ KCaloryNeed_A_B20 /Calorie_Need_Anstitoo)+ + NAge21_A_B *(Settings$ KCaloryNeed_A_B21 /Calorie_Need_Anstitoo)+ + NAge22_A_B *(Settings$ KCaloryNeed_A_B22 /Calorie_Need_Anstitoo)+ + NAge23_A_B *(Settings$ KCaloryNeed_A_B23 /Calorie_Need_Anstitoo)+ + NAge24_A_B *(Settings$ KCaloryNeed_A_B24 /Calorie_Need_Anstitoo)+ + NAge25_A_B *(Settings$ KCaloryNeed_A_B25 /Calorie_Need_Anstitoo)+ + NAge26_A_B *(Settings$ KCaloryNeed_A_B26 /Calorie_Need_Anstitoo)+ + NAge27_A_B *(Settings$ KCaloryNeed_A_B27 /Calorie_Need_Anstitoo)+ + NAge28_A_B *(Settings$ KCaloryNeed_A_B28 /Calorie_Need_Anstitoo)+ + NAge29_A_B *(Settings$ KCaloryNeed_A_B29 /Calorie_Need_Anstitoo)+ + NAge30_A_B *(Settings$ KCaloryNeed_A_B30 /Calorie_Need_Anstitoo)+ + NAge31_A_B *(Settings$ KCaloryNeed_A_B31 /Calorie_Need_Anstitoo)+ + NAge32_A_B *(Settings$ KCaloryNeed_A_B32 /Calorie_Need_Anstitoo)+ + NAge33_A_B *(Settings$ KCaloryNeed_A_B33 /Calorie_Need_Anstitoo)+ + NAge34_A_B *(Settings$ KCaloryNeed_A_B34 /Calorie_Need_Anstitoo)+ + NAge35_A_B *(Settings$ KCaloryNeed_A_B35 /Calorie_Need_Anstitoo)+ + NAge36_A_B *(Settings$ KCaloryNeed_A_B36 /Calorie_Need_Anstitoo)+ + NAge37_A_B *(Settings$ KCaloryNeed_A_B37 /Calorie_Need_Anstitoo)+ + NAge38_A_B *(Settings$ KCaloryNeed_A_B38 /Calorie_Need_Anstitoo)+ + NAge39_A_B *(Settings$ KCaloryNeed_A_B39 /Calorie_Need_Anstitoo)+ + NAge40_A_B *(Settings$ KCaloryNeed_A_B40 /Calorie_Need_Anstitoo)+ + NAge41_A_B *(Settings$ KCaloryNeed_A_B41 /Calorie_Need_Anstitoo)+ + NAge42_A_B *(Settings$ KCaloryNeed_A_B42 /Calorie_Need_Anstitoo)+ + NAge43_A_B *(Settings$ KCaloryNeed_A_B43 /Calorie_Need_Anstitoo)+ + NAge44_A_B *(Settings$ KCaloryNeed_A_B44 /Calorie_Need_Anstitoo)+ + NAge45_A_B *(Settings$ KCaloryNeed_A_B45 /Calorie_Need_Anstitoo)+ + NAge46_A_B *(Settings$ KCaloryNeed_A_B46 /Calorie_Need_Anstitoo)+ + NAge47_A_B *(Settings$ KCaloryNeed_A_B47 /Calorie_Need_Anstitoo)+ + NAge48_A_B *(Settings$ KCaloryNeed_A_B48 /Calorie_Need_Anstitoo)+ + NAge49_A_B *(Settings$ KCaloryNeed_A_B49 /Calorie_Need_Anstitoo)+ + NAge50_A_B *(Settings$ KCaloryNeed_A_B50 /Calorie_Need_Anstitoo)+ + NAge51_A_B *(Settings$ KCaloryNeed_A_B51 /Calorie_Need_Anstitoo)+ + NAge52_A_B *(Settings$ KCaloryNeed_A_B52 /Calorie_Need_Anstitoo)+ + NAge53_A_B *(Settings$ KCaloryNeed_A_B53 /Calorie_Need_Anstitoo)+ + NAge54_A_B *(Settings$ KCaloryNeed_A_B54 /Calorie_Need_Anstitoo)+ + NAge55_A_B *(Settings$ KCaloryNeed_A_B55 /Calorie_Need_Anstitoo)+ + NAge56_A_B *(Settings$ KCaloryNeed_A_B56 /Calorie_Need_Anstitoo)+ + NAge57_A_B *(Settings$ KCaloryNeed_A_B57 /Calorie_Need_Anstitoo)+ + NAge58_A_B *(Settings$ KCaloryNeed_A_B58 /Calorie_Need_Anstitoo)+ + NAge59_A_B *(Settings$ KCaloryNeed_A_B59 /Calorie_Need_Anstitoo)+ + NAge60_A_B *(Settings$ KCaloryNeed_A_B60 /Calorie_Need_Anstitoo)+ + NAge61_A_B *(Settings$ KCaloryNeed_A_B61 /Calorie_Need_Anstitoo)+ + NAge62_A_B *(Settings$ KCaloryNeed_A_B62 /Calorie_Need_Anstitoo)+ + NAge63_A_B *(Settings$ KCaloryNeed_A_B63 /Calorie_Need_Anstitoo)+ + NAge64_A_B *(Settings$ KCaloryNeed_A_B64 /Calorie_Need_Anstitoo)+ + NAge65_A_B *(Settings$ KCaloryNeed_A_B65 /Calorie_Need_Anstitoo)+ + NAge66_A_B *(Settings$ KCaloryNeed_A_B66 /Calorie_Need_Anstitoo)+ + NAge67_A_B *(Settings$ KCaloryNeed_A_B67 /Calorie_Need_Anstitoo)+ + NAge68_A_B *(Settings$ KCaloryNeed_A_B68 /Calorie_Need_Anstitoo)+ + NAge69_A_B *(Settings$ KCaloryNeed_A_B69 /Calorie_Need_Anstitoo)+ + NAge70_A_B *(Settings$ KCaloryNeed_A_B70 /Calorie_Need_Anstitoo)+ + NAge71_A_B *(Settings$ KCaloryNeed_A_B71 /Calorie_Need_Anstitoo)+ + NAge72_A_B *(Settings$ KCaloryNeed_A_B72 /Calorie_Need_Anstitoo)+ + NAge73_A_B *(Settings$ KCaloryNeed_A_B73 /Calorie_Need_Anstitoo)+ + NAge74_A_B *(Settings$ KCaloryNeed_A_B74 /Calorie_Need_Anstitoo)+ + NAge75_A_B *(Settings$ KCaloryNeed_A_B75 /Calorie_Need_Anstitoo)+ + NAge76_A_B *(Settings$ KCaloryNeed_A_B76 /Calorie_Need_Anstitoo)+ + NAge77_A_B *(Settings$ KCaloryNeed_A_B77 /Calorie_Need_Anstitoo)+ + NAge78_A_B *(Settings$ KCaloryNeed_A_B78 /Calorie_Need_Anstitoo)+ + NAge79_A_B *(Settings$ KCaloryNeed_A_B79 /Calorie_Need_Anstitoo)+ + NAge80_A_B *(Settings$ KCaloryNeed_A_B80 /Calorie_Need_Anstitoo)+ + NAge81_A_B *(Settings$ KCaloryNeed_A_B81 /Calorie_Need_Anstitoo)+ + NAge82_A_B *(Settings$ KCaloryNeed_A_B82 /Calorie_Need_Anstitoo)+ + NAge83_A_B *(Settings$ KCaloryNeed_A_B83 /Calorie_Need_Anstitoo)+ + NAge84_A_B *(Settings$ KCaloryNeed_A_B84 /Calorie_Need_Anstitoo)+ + NAge85_A_B *(Settings$ KCaloryNeed_A_B85 /Calorie_Need_Anstitoo)+ + NAge86_A_B *(Settings$ KCaloryNeed_A_B86 /Calorie_Need_Anstitoo)+ + NAge87_A_B *(Settings$ KCaloryNeed_A_B87 /Calorie_Need_Anstitoo)+ + NAge88_A_B *(Settings$ KCaloryNeed_A_B88 /Calorie_Need_Anstitoo)+ + NAge89_A_B *(Settings$ KCaloryNeed_A_B89 /Calorie_Need_Anstitoo)+ + NAge90_A_B *(Settings$ KCaloryNeed_A_B90 /Calorie_Need_Anstitoo)+ + NAge91_A_B *(Settings$ KCaloryNeed_A_B91 /Calorie_Need_Anstitoo)+ + NAge92_A_B *(Settings$ KCaloryNeed_A_B92 /Calorie_Need_Anstitoo)+ + NAge93_A_B *(Settings$ KCaloryNeed_A_B93 /Calorie_Need_Anstitoo)+ + NAge94_A_B *(Settings$ KCaloryNeed_A_B94 /Calorie_Need_Anstitoo)+ + NAge95_A_B *(Settings$ KCaloryNeed_A_B95 /Calorie_Need_Anstitoo)+ + NAge96_A_B *(Settings$ KCaloryNeed_A_B96 /Calorie_Need_Anstitoo)+ + NAge97_A_B *(Settings$ KCaloryNeed_A_B97 /Calorie_Need_Anstitoo)+ + NAge98_A_B *(Settings$ KCaloryNeed_A_B98 /Calorie_Need_Anstitoo)+ + NAge99_A_B *(Settings$ KCaloryNeed_A_B99 /Calorie_Need_Anstitoo)+ + NAge0_A_G *(Settings$ KCaloryNeed_A_G0 /Calorie_Need_Anstitoo)+ + NAge1_A_G *(Settings$ KCaloryNeed_A_G1 /Calorie_Need_Anstitoo)+ + NAge2_A_G *(Settings$ KCaloryNeed_A_G2 /Calorie_Need_Anstitoo)+ + NAge3_A_G *(Settings$ KCaloryNeed_A_G3 /Calorie_Need_Anstitoo)+ + NAge4_A_G *(Settings$ KCaloryNeed_A_G4 /Calorie_Need_Anstitoo)+ + NAge5_A_G *(Settings$ KCaloryNeed_A_G5 /Calorie_Need_Anstitoo)+ + NAge6_A_G *(Settings$ KCaloryNeed_A_G6 /Calorie_Need_Anstitoo)+ + NAge7_A_G *(Settings$ KCaloryNeed_A_G7 /Calorie_Need_Anstitoo)+ + NAge8_A_G *(Settings$ KCaloryNeed_A_G8 /Calorie_Need_Anstitoo)+ + NAge9_A_G *(Settings$ KCaloryNeed_A_G9 /Calorie_Need_Anstitoo)+ + NAge10_A_G *(Settings$ KCaloryNeed_A_G10 /Calorie_Need_Anstitoo)+ + NAge11_A_G *(Settings$ KCaloryNeed_A_G11 /Calorie_Need_Anstitoo)+ + NAge12_A_G *(Settings$ KCaloryNeed_A_G12 /Calorie_Need_Anstitoo)+ + NAge13_A_G *(Settings$ KCaloryNeed_A_G13 /Calorie_Need_Anstitoo)+ + NAge14_A_G *(Settings$ KCaloryNeed_A_G14 /Calorie_Need_Anstitoo)+ + NAge15_A_G *(Settings$ KCaloryNeed_A_G15 /Calorie_Need_Anstitoo)+ + NAge16_A_G *(Settings$ KCaloryNeed_A_G16 /Calorie_Need_Anstitoo)+ + NAge17_A_G *(Settings$ KCaloryNeed_A_G17 /Calorie_Need_Anstitoo)+ + NAge18_A_G *(Settings$ KCaloryNeed_A_G18 /Calorie_Need_Anstitoo)+ + NAge19_A_G *(Settings$ KCaloryNeed_A_G19 /Calorie_Need_Anstitoo)+ + NAge20_A_G *(Settings$ KCaloryNeed_A_G20 /Calorie_Need_Anstitoo)+ + NAge21_A_G *(Settings$ KCaloryNeed_A_G21 /Calorie_Need_Anstitoo)+ + NAge22_A_G *(Settings$ KCaloryNeed_A_G22 /Calorie_Need_Anstitoo)+ + NAge23_A_G *(Settings$ KCaloryNeed_A_G23 /Calorie_Need_Anstitoo)+ + NAge24_A_G *(Settings$ KCaloryNeed_A_G24 /Calorie_Need_Anstitoo)+ + NAge25_A_G *(Settings$ KCaloryNeed_A_G25 /Calorie_Need_Anstitoo)+ + NAge26_A_G *(Settings$ KCaloryNeed_A_G26 /Calorie_Need_Anstitoo)+ + NAge27_A_G *(Settings$ KCaloryNeed_A_G27 /Calorie_Need_Anstitoo)+ + NAge28_A_G *(Settings$ KCaloryNeed_A_G28 /Calorie_Need_Anstitoo)+ + NAge29_A_G *(Settings$ KCaloryNeed_A_G29 /Calorie_Need_Anstitoo)+ + NAge30_A_G *(Settings$ KCaloryNeed_A_G30 /Calorie_Need_Anstitoo)+ + NAge31_A_G *(Settings$ KCaloryNeed_A_G31 /Calorie_Need_Anstitoo)+ + NAge32_A_G *(Settings$ KCaloryNeed_A_G32 /Calorie_Need_Anstitoo)+ + NAge33_A_G *(Settings$ KCaloryNeed_A_G33 /Calorie_Need_Anstitoo)+ + NAge34_A_G *(Settings$ KCaloryNeed_A_G34 /Calorie_Need_Anstitoo)+ + NAge35_A_G *(Settings$ KCaloryNeed_A_G35 /Calorie_Need_Anstitoo)+ + NAge36_A_G *(Settings$ KCaloryNeed_A_G36 /Calorie_Need_Anstitoo)+ + NAge37_A_G *(Settings$ KCaloryNeed_A_G37 /Calorie_Need_Anstitoo)+ + NAge38_A_G *(Settings$ KCaloryNeed_A_G38 /Calorie_Need_Anstitoo)+ + NAge39_A_G *(Settings$ KCaloryNeed_A_G39 /Calorie_Need_Anstitoo)+ + NAge40_A_G *(Settings$ KCaloryNeed_A_G40 /Calorie_Need_Anstitoo)+ + NAge41_A_G *(Settings$ KCaloryNeed_A_G41 /Calorie_Need_Anstitoo)+ + NAge42_A_G *(Settings$ KCaloryNeed_A_G42 /Calorie_Need_Anstitoo)+ + NAge43_A_G *(Settings$ KCaloryNeed_A_G43 /Calorie_Need_Anstitoo)+ + NAge44_A_G *(Settings$ KCaloryNeed_A_G44 /Calorie_Need_Anstitoo)+ + NAge45_A_G *(Settings$ KCaloryNeed_A_G45 /Calorie_Need_Anstitoo)+ + NAge46_A_G *(Settings$ KCaloryNeed_A_G46 /Calorie_Need_Anstitoo)+ + NAge47_A_G *(Settings$ KCaloryNeed_A_G47 /Calorie_Need_Anstitoo)+ + NAge48_A_G *(Settings$ KCaloryNeed_A_G48 /Calorie_Need_Anstitoo)+ + NAge49_A_G *(Settings$ KCaloryNeed_A_G49 /Calorie_Need_Anstitoo)+ + NAge50_A_G *(Settings$ KCaloryNeed_A_G50 /Calorie_Need_Anstitoo)+ + NAge51_A_G *(Settings$ KCaloryNeed_A_G51 /Calorie_Need_Anstitoo)+ + NAge52_A_G *(Settings$ KCaloryNeed_A_G52 /Calorie_Need_Anstitoo)+ + NAge53_A_G *(Settings$ KCaloryNeed_A_G53 /Calorie_Need_Anstitoo)+ + NAge54_A_G *(Settings$ KCaloryNeed_A_G54 /Calorie_Need_Anstitoo)+ + NAge55_A_G *(Settings$ KCaloryNeed_A_G55 /Calorie_Need_Anstitoo)+ + NAge56_A_G *(Settings$ KCaloryNeed_A_G56 /Calorie_Need_Anstitoo)+ + NAge57_A_G *(Settings$ KCaloryNeed_A_G57 /Calorie_Need_Anstitoo)+ + NAge58_A_G *(Settings$ KCaloryNeed_A_G58 /Calorie_Need_Anstitoo)+ + NAge59_A_G *(Settings$ KCaloryNeed_A_G59 /Calorie_Need_Anstitoo)+ + NAge60_A_G *(Settings$ KCaloryNeed_A_G60 /Calorie_Need_Anstitoo)+ + NAge61_A_G *(Settings$ KCaloryNeed_A_G61 /Calorie_Need_Anstitoo)+ + NAge62_A_G *(Settings$ KCaloryNeed_A_G62 /Calorie_Need_Anstitoo)+ + NAge63_A_G *(Settings$ KCaloryNeed_A_G63 /Calorie_Need_Anstitoo)+ + NAge64_A_G *(Settings$ KCaloryNeed_A_G64 /Calorie_Need_Anstitoo)+ + NAge65_A_G *(Settings$ KCaloryNeed_A_G65 /Calorie_Need_Anstitoo)+ + NAge66_A_G *(Settings$ KCaloryNeed_A_G66 /Calorie_Need_Anstitoo)+ + NAge67_A_G *(Settings$ KCaloryNeed_A_G67 /Calorie_Need_Anstitoo)+ + NAge68_A_G *(Settings$ KCaloryNeed_A_G68 /Calorie_Need_Anstitoo)+ + NAge69_A_G *(Settings$ KCaloryNeed_A_G69 /Calorie_Need_Anstitoo)+ + NAge70_A_G *(Settings$ KCaloryNeed_A_G70 /Calorie_Need_Anstitoo)+ + NAge71_A_G *(Settings$ KCaloryNeed_A_G71 /Calorie_Need_Anstitoo)+ + NAge72_A_G *(Settings$ KCaloryNeed_A_G72 /Calorie_Need_Anstitoo)+ + NAge73_A_G *(Settings$ KCaloryNeed_A_G73 /Calorie_Need_Anstitoo)+ + NAge74_A_G *(Settings$ KCaloryNeed_A_G74 /Calorie_Need_Anstitoo)+ + NAge75_A_G *(Settings$ KCaloryNeed_A_G75 /Calorie_Need_Anstitoo)+ + NAge76_A_G *(Settings$ KCaloryNeed_A_G76 /Calorie_Need_Anstitoo)+ + NAge77_A_G *(Settings$ KCaloryNeed_A_G77 /Calorie_Need_Anstitoo)+ + NAge78_A_G *(Settings$ KCaloryNeed_A_G78 /Calorie_Need_Anstitoo)+ + NAge79_A_G *(Settings$ KCaloryNeed_A_G79 /Calorie_Need_Anstitoo)+ + NAge80_A_G *(Settings$ KCaloryNeed_A_G80 /Calorie_Need_Anstitoo)+ + NAge81_A_G *(Settings$ KCaloryNeed_A_G81 /Calorie_Need_Anstitoo)+ + NAge82_A_G *(Settings$ KCaloryNeed_A_G82 /Calorie_Need_Anstitoo)+ + NAge83_A_G *(Settings$ KCaloryNeed_A_G83 /Calorie_Need_Anstitoo)+ + NAge84_A_G *(Settings$ KCaloryNeed_A_G84 /Calorie_Need_Anstitoo)+ + NAge85_A_G *(Settings$ KCaloryNeed_A_G85 /Calorie_Need_Anstitoo)+ + NAge86_A_G *(Settings$ KCaloryNeed_A_G86 /Calorie_Need_Anstitoo)+ + NAge87_A_G *(Settings$ KCaloryNeed_A_G87 /Calorie_Need_Anstitoo)+ + NAge88_A_G *(Settings$ KCaloryNeed_A_G88 /Calorie_Need_Anstitoo)+ + NAge89_A_G *(Settings$ KCaloryNeed_A_G89 /Calorie_Need_Anstitoo)+ + NAge90_A_G *(Settings$ KCaloryNeed_A_G90 /Calorie_Need_Anstitoo)+ + NAge91_A_G *(Settings$ KCaloryNeed_A_G91 /Calorie_Need_Anstitoo)+ + NAge92_A_G *(Settings$ KCaloryNeed_A_G92 /Calorie_Need_Anstitoo)+ + NAge93_A_G *(Settings$ KCaloryNeed_A_G93 /Calorie_Need_Anstitoo)+ + NAge94_A_G *(Settings$ KCaloryNeed_A_G94 /Calorie_Need_Anstitoo)+ + NAge95_A_G *(Settings$ KCaloryNeed_A_G95 /Calorie_Need_Anstitoo)+ + NAge96_A_G *(Settings$ KCaloryNeed_A_G96 /Calorie_Need_Anstitoo)+ + NAge97_A_G *(Settings$ KCaloryNeed_A_G97 /Calorie_Need_Anstitoo)+ + NAge98_A_G *(Settings$ KCaloryNeed_A_G98 /Calorie_Need_Anstitoo)+ + NAge99_A_G *(Settings$ KCaloryNeed_A_G99 /Calorie_Need_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_Anstitoo)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN2.rda")) + +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Step 6- FoodBasicNeeds (version 2).R b/R/Archive/June 2020 (removed code files)/Step 6- FoodBasicNeeds (version 2).R new file mode 100644 index 00000000..b0969328 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Step 6- FoodBasicNeeds (version 2).R @@ -0,0 +1,80 @@ +#176-Step 6- FoodBasicNeeds (version 2).R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + MD[,Bundle_Value_T:=Bundle_Value+Bundle_Value_H] + + #Determine Food (Equal 2100 KCal) Bundle + #MDPoors<-MD[InitialPoor==1] + MD[,NewPoor:=InitialPoor] + #MD[,NewPoor:=ifelse(Decile %in% c(1,2,3,4),1,0)] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MD[,FPLine2:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + FPLine2=weighted.mean(Bundle_Value_T,Weight,na.rm = TRUE)), + by=.(cluster3,Region)] + MD <- merge(MD,MDP,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + # MDF<-MD[FinalFoodPoor==1] + MD[,weighted.mean(FinalFoodPoor,Weight)] + MD[,weighted.mean(FPLine,Weight),by=c("Region","cluster3")] + MD[,weighted.mean(FPLine2,Weight),by=c("Region","cluster3")] + # MDF<-MDF[,.(HHID,FinalFoodPoor)] + # load(file = "MDF1.rda") + # x<-merge(MDF1,MDF) + + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Step 6- FoodBasicNeeds (version 3).R b/R/Archive/June 2020 (removed code files)/Step 6- FoodBasicNeeds (version 3).R new file mode 100644 index 00000000..f956e535 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Step 6- FoodBasicNeeds (version 3).R @@ -0,0 +1,75 @@ +#176-Step 6- FoodBasicNeeds (version 3).R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + MD[,Bundle_Value_T:=Bundle_Value+Bundle_Value_H] + + #Determine Food (Equal 2100 KCal) Bundle + #MDPoors<-MD[InitialPoor==1] + MD[,NewPoor:=InitialPoor] + #MD[,NewPoor:=ifelse(Decile %in% c(1,2,3,4),1,0)] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value_H,Weight,na.rm = TRUE)), + by=.(cluster3,Region)] + MD <- merge(MD,MDP,by=c("Region","cluster3")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(ServiceExp/Size < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value_H)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + MDF1<-MD[FinalFoodPoor==1] + MDF1<-MDF1[,.(HHID,FinalFoodPoor)] + names(MDF1)<-c("HHID","F1") + save(MDF1,file = "MDF1.rda") + MD[,weighted.mean(FinalFoodPoor,Weight),by=ProvinceCode] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Step 7,8,9 and other.R b/R/Archive/June 2020 (removed code files)/Step 7,8,9 and other.R new file mode 100644 index 00000000..c8f8880b --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Step 7,8,9 and other.R @@ -0,0 +1,487 @@ +# Step 7,8,9 and other +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +FinalClusterDiff <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,Food_Share=NA_real_,Durable_Share=NA_real_, + SampleSize=NA_integer_,Clusterdiff=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_,FoodKCaloriesHH_Per=NA_real_, + Total_Exp_Month_Per_nondurable=NA_real_, + Total_Exp_Month_Per=NA_real_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +HighEngles<-data.table(Year=NA_integer_,Region=NA_integer_,cluster3=NA_real_,N40=NA_real_, + N45=NA_real_,N50=NA_real_,N=NA_real_)[0] + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + #MD<-MD[Region=="Rural"] + #MD<-MD[cluster3==13] + MD<-MD[,Clusterdiff:=ifelse(cluster3==7,1,0)] + + HighEngle1 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (TOriginalFoodExpenditure/Total_Exp_Month) > 0.4, + .(.N),by=.(Region,cluster3)] + names(HighEngle1)<-c("Region", "cluster3","N40") + + HighEngle2 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (TOriginalFoodExpenditure/Total_Exp_Month) > 0.45, + .(.N),by=.(Region,cluster3)] + names(HighEngle2)<-c("Region", "cluster3","N45") + + HighEngle3 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + (TOriginalFoodExpenditure/Total_Exp_Month) > 0.5, + .(.N),by=.(Region,cluster3)] + names(HighEngle3)<-c("Region", "cluster3","N50") + + HighEngle4 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N),by=.(Region,cluster3)] + + HighEngle<-merge(HighEngle1,HighEngle2) + HighEngle<-merge(HighEngle,HighEngle3) + HighEngle<-merge(HighEngle,HighEngle4) + + EngleD<- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + + + EngleD[,PovertyLine:=FPLine/Engel] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engel)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + ################High Engle################## + + X1 <- HighEngle + + X1[,Year:=year] + + HighEngles <- rbind(HighEngles,X1) + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + cat(MD[, weighted.mean(FPLine,Weight*Size)],"\t") + cat(MD[, sum(Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + Poors<-MD[FinalPoor==1] + + a<-MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine & + cluster3==7, + .(x=TOriginalFoodExpenditure/Total_Exp_Month)] + + + MD[as.numeric(Decile)<2,weighted.mean(FinalPoor,Weight)] + + MD5<-MD[ProvinceCode!=11] + MD5<-MD5[,Group:=ifelse(FinalPoor==0 & FinalFoodPoor==0,"NoPoor", + ifelse(FinalPoor==1 & FinalFoodPoor==0,"OnlyFinalPoor", + ifelse(FinalPoor==0 & FinalFoodPoor==1,"OnlyFoodPoor","Both")))] + a<-ggplot(MD5,aes(x=HHEngle, fill=factor(Group))) + + geom_density(alpha=0.25)+ + xlim(0,1)+ylim(0,5)+ + ggtitle(year) + plot(a) + + + + MDD<-MD[,.(Population=sum(Weight*Size)), by=.(Decile,ProvinceName)][order(ProvinceName,Decile)] + ggplot(MDD, aes(fill=factor(Decile), y=Population, x=ProvinceName)) + + geom_bar(position="fill", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + + Decile1<-MD[as.numeric(Decile)<2,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile1Poors<-Decile1[,.(Decile1Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile1Poors, aes( y=Decile1Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + Decile2<-MD[as.numeric(Decile)<3,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile2Poors<-Decile2[,.(Decile2Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile2Poors, aes( y=Decile2Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + Decile5<-MD[as.numeric(Decile)>3,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile5Poors<-Decile5[,.(Decile5Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile5Poors, aes( y=Decile5Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + MDP<-MD[FinalPoor==1,.(Population=sum(Weight*Size)), by=.(Decile,cluster3)][order(cluster3,Decile)] + ggplot(MDP, aes(fill=factor(Decile), y=Population, x=cluster3)) + + geom_bar(position="fill", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + MD[,weighted.mean(FinalPoor,Weight),by=ProvinceCode][order(ProvinceCode)] +} +# compare Engle & Engle_prime in 178 +FinalClusterEngel <- FinalClusterResults[,.(Year,cluster3,FPLine,PovertyHCR)] +save(FinalClusterEngel,file=paste0(Settings$HEISProcessedPath,"FINALPOORS_normal.rda")) + +ggplot(HighEngles)+ + geom_line(mapping = aes(x=Year,y=N50/N,col=factor(cluster3))) + +ggplot(FinalClusterResults)+ + geom_line(mapping = aes(x=Year,y=PovertyHCR,col=factor(cluster3))) + +#write.csv(FinalClusterResults,file = FinalClusterResults.csv) + + +Job<-MD[FinalPoor==1,weighted.mean(HActivityState=="Employed",Weight),by=ProvinceCode] +IncomeWithoutWork<-MD[FinalPoor==1,weighted.mean(HActivityState=="Income without Work",Weight),by=ProvinceCode] + +Widow<-MD[FinalPoor==1,weighted.mean(HSex=="Female",Weight),by=ProvinceCode] +Widow2<-MD[HSex=="Female",weighted.mean(FinalPoor,Weight),by=ProvinceCode] + +load(file=paste0(Settings$HEISProcessedPath,"Y",97,"job.rda")) +#MD<-merge(MD,job,by=c("HHID","Region","HActivityState")) +#Pubjob<-MD[FinalPoor==1,weighted.mean(Job_Main_Code_Pub==9,Weight), +# by=ProvinceCode] + +#Prvjob<-MD[FinalPoor==1,weighted.mean(Job_Main_Code_Prv==9,Weight), +# by=ProvinceCode] + +#Pubjob<-MD[FinalPoor==1,weighted.mean(Job_Main_Code_Prv<3 & Job_Main_Code_Prv>0,Weight)+ +# weighted.mean(Job_Main_Code_Pub<3 & Job_Main_Code_Pub>0,Weight),by=ProvinceCode] + +#sub_share<-MD[FinalPoor==1,.(HHID,Region,ProvinceCode,Subsidy,Decile,Decile_Nominal, +# sub_share=Subsidy/(12*Total_Exp_Month_nondurable))] + +#sub_share2<-MD[FinalPoor==1,.( sub_share=weighted.mean(Subsidy/(12*Total_Exp_Month_nondurable),Weight), +# Edu=weighted.mean(HEduYears,Weight), +# NKids=weighted.mean(NKids,Weight), +# OtherExp=weighted.mean((Total_Exp_Month-OriginalFoodExpenditure-ServiceExp)/Total_Exp_Month,Weight)),by=ProvinceCode] + +###Durable- Cluster +DExp<-MD[,.(Durable_Exp_Per=weighted.mean(Durable_Exp/EqSizeOECD,Weight)),by="cluster3"] +ggplot(DExp, aes(fill=factor(cluster3), y=Durable_Exp_Per, x=cluster3)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +DSale<-MD[,.(Durable_Sale_Per=weighted.mean(Durable_Sale/EqSizeOECD,Weight)),by="cluster3"] +ggplot(DSale, aes(fill=factor(cluster3), y=Durable_Sale_Per, x=cluster3)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +#DPure<-MD[,.(Durable_Pure_Exp_Per=weighted.mean(Durable_Pure_Exp/EqSizeOECD,Weight)),by="cluster3"] +#ggplot(DPure, aes(fill=factor(cluster3), y=Durable_Pure_Exp_Per, x=cluster3)) + +# geom_bar(position="dodge", stat="identity") + theme_bw() + +# theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +###Durables share- Cluster +DExp<-MD[,.(Durable_Exp_Share=weighted.mean(Durable_Exp/Total_Exp_Month,Weight)),by="cluster3"] +ggplot(DExp, aes(fill=factor(cluster3), y=Durable_Exp_Share, x=cluster3)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +DSale<-MD[,.(Durable_Sale_Share=weighted.mean(Durable_Sale/Total_Exp_Month,Weight)),by="cluster3"] +ggplot(DSale, aes(fill=factor(cluster3), y=Durable_Sale_Share, x=cluster3)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +#DPure<-MD[,.(Durable_Pure_Exp_Share=weighted.mean(Durable_Pure_Exp/Total_Exp_Month,Weight)),by="cluster3"] +#ggplot(DPure, aes(fill=factor(cluster3), y=Durable_Pure_Exp_Share, x=cluster3)) + +# geom_bar(position="dodge", stat="identity") + theme_bw() + +# theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +#DRatio<-MD[,.(Durable_Exp_Ratio=weighted.mean(Durable_Exp/Total_Exp_Month_nondurable,Weight)),by="cluster3"] +#ggplot(DRatio, aes(fill=factor(cluster3), y=Durable_Pure_Exp_Ratio, x=cluster3)) + +# geom_bar(position="dodge", stat="identity") + theme_bw() + +# theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +####Urban +x2<-MD[Region=="Urban",.(Durable_Exp_Per=weighted.mean(Durable_Exp/EqSizeOECD,Weight)),by="NewArea_Name"] +x2$NewArea_Name <- factor(x2$NewArea_Name, levels = x2$NewArea_Name[order(x2$Durable_Exp)]) +ggplot(x2, aes(x = x2$NewArea_Name, y = x2$Durable_Exp)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +x2<-MD[Region=="Urban",.(Durable_Sale_Per=weighted.mean(Durable_Sale/EqSizeOECD,Weight)),by="NewArea_Name"] +x2$NewArea_Name <- factor(x2$NewArea_Name, levels = x2$NewArea_Name[order(x2$Durable_Sale_Per)]) +ggplot(x2, aes(x = x2$NewArea_Name, y = x2$Durable_Sale_Per)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +#x2<-MD[Region=="Urban",.(Durable_Pure_Exp_Per=weighted.mean(Durable_Pure_Exp/EqSizeOECD,Weight)),by="NewArea_Name"] +#x2$NewArea_Name <- factor(x2$NewArea_Name, levels = x2$NewArea_Name[order(x2$Durable_Pure_Exp_Per)]) +#ggplot(x2, aes(x = x2$NewArea_Name, y = x2$Durable_Pure_Exp_Per)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +####Rural +x2<-MD[Region=="Rural",.(Durable_Exp_Per=weighted.mean(Durable_Exp/EqSizeOECD,Weight)),by="NewArea_Name"] +x2$NewArea_Name <- factor(x2$NewArea_Name, levels = x2$NewArea_Name[order(x2$Durable_Exp)]) +ggplot(x2, aes(x = x2$NewArea_Name, y = x2$Durable_Exp)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +x2<-MD[Region=="Rural",.(Durable_Sale_Per=weighted.mean(Durable_Sale/EqSizeOECD,Weight)),by="NewArea_Name"] +x2$NewArea_Name <- factor(x2$NewArea_Name, levels = x2$NewArea_Name[order(x2$Durable_Sale_Per)]) +ggplot(x2, aes(x = x2$NewArea_Name, y = x2$Durable_Sale_Per)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +#x2<-MD[Region=="Rural",.(Durable_Pure_Exp_Per=weighted.mean(Durable_Pure_Exp/EqSizeOECD,Weight)),by="NewArea_Name"] +#x2$NewArea_Name <- factor(x2$NewArea_Name, levels = x2$NewArea_Name[order(x2$Durable_Pure_Exp_Per)]) +#ggplot(x2, aes(x = x2$NewArea_Name, y = x2$Durable_Pure_Exp_Per)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +MD[FinalPoor==1,weighted.mean(Total_Exp_Month_Per,Weight),by="Region"] + +MD[FinalPoor==1 & PovertyLine-Total_Exp_Month_Per>0, + sum((PovertyLine-Total_Exp_Month_Per)*Size*Weight),by="Region"] + +MD[FinalPoor==1, + sum((PovertyLine-Total_Exp_Month_Per)*Size*Weight)] + +MD[FinalPoor==1 & PovertyLine-Total_Exp_Month_Per_nondurable>0, + sum((PovertyLine-Total_Exp_Month_Per_nondurable)*Size*Weight),by="Region"] + +MD[FinalPoor==1 & PovertyLine-Total_Exp_Month_Per_nondurable>0, + sum((PovertyLine-Total_Exp_Month_Per_nondurable)*Size*Weight)] + +MD[NewArea==2301,sum(Weight*Size)] + +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region)][order(Region)] + +MD[,weighted.mean(Bundle_Value,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(Bundle_Value,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(Bundle_Value,Weight),by=.(Region)][order(Region)] + +MD[,weighted.mean(HHEngle,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(HHEngle,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(HHEngle,Weight),by=.(Region)][order(Region)] + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"RetirementWage.rda")) +MD<-merge(MD,RetirementWageData,by="HHID",all.x = TRUE) + +RT<-MD[,.(HHID,Region,HAge,HActivityState,Decile,retirement,Weight)] +RT[is.na(RT)] <- 0 +RT[,Old:=ifelse(retirement>0 & HAge>48,1,0)] +RT[,weighted.mean(Old,Weight)] +RT[,weighted.mean(Old,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(Old,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(Old,Weight),by=Region][order(Region)] + +RT[,Old1:=ifelse(retirement>0 & HAge>48 & + (PubWageNetIncomeY==0 & PrvWageNetIncomeY==0 & + BussNetIncomeY==0 & AgriNetIncomeY==0),1,0)] +RT[,weighted.mean(Old1,Weight)] +RT[,weighted.mean(Old1,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(Old1,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(Old1,Weight),by=Region][order(Region)] + +RT[,Old2:=ifelse(retirement>0 & HAge>48 & HActivityState!="Employed" & + (PubWageNetIncomeY>0 | PrvWageNetIncomeY>0 | + BussNetIncomeY>0 | AgriNetIncomeY>0),1,0)] +RT[,weighted.mean(Old2,Weight)] +RT[,weighted.mean(Old2,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(Old2,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(Old2,Weight),by=Region][order(Region)] + +RT[,Old3:=ifelse(retirement>0 & HAge>48 & HActivityState=="Employed" & + (PubWageNetIncomeY>0 | PrvWageNetIncomeY>0 | + BussNetIncomeY>0 | AgriNetIncomeY>0),1,0)] +RT[,weighted.mean(Old3,Weight)] +RT[,weighted.mean(Old3,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(Old3,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(Old3,Weight),by=Region][order(Region)] + + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"TotalDurable.rda")) +RT<-merge(RT,TotalDurable[,.(HHID,Premium_gheyredarmani_mostakhdem, + Premium_gheyredarmani_karfarma,Premium_retirement_mostakhdem, + Premium_retirement_karfarma,Premium_retirement_general, + Premium_retirement_Rural_Household,Premium_retirement_Rural_Govern, + Premium_retirement_bank)]) + +RT[,pub1:=ifelse(HActivityState=="Employed" & + PubWageNetIncomeY>0 ,1,0)] +RT[,weighted.mean(pub1,Weight)] +RT[,weighted.mean(pub1,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(pub1,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(pub1,Weight),by=Region][order(Region)] + + +RT[,pub2:=ifelse(PubWageNetIncomeY>0 ,1,0)] +RT[,weighted.mean(pub2,Weight)] +RT[,weighted.mean(pub2,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(pub2,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(pub2,Weight),by=Region][order(Region)] + + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"PubWage.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"PrvWages.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"BussIncome.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"AgriWages.rda")) + +RT<-merge(RT,PubWageData[,.(HHID,PubWageNetIncomeY)],all.x = TRUE) +RT<-merge(RT,PrvWageData[,.(HHID,PrvWageNetIncomeY)],all.x = TRUE) +RT<-merge(RT,BussIncomeData[,.(HHID,BussNetIncomeY)],all.x = TRUE) +RT<-merge(RT,AgriIncomeData[,.(HHID,AgriNetIncomeY)],all.x = TRUE) +RT[is.na(RT)] <- 0 + +a<-RT[AgriNetIncomeY!=0,.(HHID,Region,AgriNetIncomeY, + Premium_gheyredarmani_mostakhdem,Weight)] +a[,weighted.mean(Premium_gheyredarmani_mostakhdem>0,Weight),by=Region] + +b<-RT[BussNetIncomeY!=0,.(HHID,Region,BussNetIncomeY, + Premium_gheyredarmani_mostakhdem,Weight)] +b[,weighted.mean(Premium_gheyredarmani_mostakhdem>0,Weight),by=Region] + +RT[,P:=ifelse(HActivityState=="Employed",1 ,0)] +RT[,weighted.mean(P,Weight)] +RT[,weighted.mean(P,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P,Weight),by=Region][order(Region)] + +RT[,P:=ifelse(HActivityState=="Income without Work",1 ,0)] +RT[,weighted.mean(P,Weight)] +RT[,weighted.mean(P,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P,Weight),by=Region][order(Region)] + + +RT[,P:=ifelse(PubWageNetIncomeY>0 | PrvWageNetIncomeY>0 | + BussNetIncomeY>0 | AgriNetIncomeY>0,1 ,0)] +RT[,weighted.mean(P,Weight)] +RT[,weighted.mean(P,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P,Weight),by=Region][order(Region)] + + +RT[,P1:=ifelse((Premium_gheyredarmani_mostakhdem>0 | + Premium_gheyredarmani_karfarma>0) & + HActivityState=="Employed",1 ,0)] +RT[,weighted.mean(P1,Weight)] +RT[,weighted.mean(P1,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P1,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P1,Weight),by=Region][order(Region)] + +RT[,P2:=ifelse(Premium_gheyredarmani_karfarma>0 & HActivityState=="Employed",1 ,0)] +RT[,weighted.mean(P2,Weight)] +RT[,weighted.mean(P2,Weight),by=.(Region,Decile)][order(Region,Decile)] +RT[,weighted.mean(P2,Weight),by=Decile][order(Decile)] +RT[,weighted.mean(P2,Weight),by=Region][order(Region)] + +RT[,P3:=ifelse(Premium_retirement_mostakhdem>0,1 ,0)] +RT[,weighted.mean(P3,Weight)] +RT[,weighted.mean(P3,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P4:=ifelse(Premium_retirement_karfarma>0,1 ,0)] +RT[,weighted.mean(P4,Weight)] +RT[,weighted.mean(P4,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P5:=ifelse(Premium_retirement_general>0,1 ,0)] +RT[,weighted.mean(P5,Weight)] +RT[,weighted.mean(P5,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P6:=ifelse(Premium_retirement_Rural_Household>0,1 ,0)] +RT[,weighted.mean(P6,Weight)] +RT[,weighted.mean(P6,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P7:=ifelse(Premium_retirement_Rural_Govern>0,1 ,0)] +RT[,weighted.mean(P7,Weight)] +RT[,weighted.mean(P7,Weight),by=.(Region,Decile)][order(Region,Decile)] + +RT[,P8:=ifelse(Premium_retirement_bank>0,1 ,0)] +RT[,weighted.mean(P8,Weight)] +RT[,weighted.mean(P8,Weight),by=.(Region,Decile)][order(Region,Decile)] + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Step 7,8,9-Poverty Line (version 2).R b/R/Archive/June 2020 (removed code files)/Step 7,8,9-Poverty Line (version 2).R new file mode 100644 index 00000000..d84c9a39 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Step 7,8,9-Poverty Line (version 2).R @@ -0,0 +1,121 @@ +# 177- Step 7,8,9-Poverty Line (version 2).R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalClusterResults <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,FoodKCaloriesHH_Per=NA_real_, + SampleSize=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +FinalClusterDiff <- data.table(Year=NA_integer_,cluster3=NA_integer_,MetrPrice=NA_real_, + House_Share=NA_real_,Food_Share=NA_real_,Durable_Share=NA_real_, + SampleSize=NA_integer_,Clusterdiff=NA_integer_, + Engle=NA_integer_,FPLine=NA_integer_,FoodKCaloriesHH_Per=NA_real_, + Total_Exp_Month_Per_nondurable=NA_real_, + Total_Exp_Month_Per=NA_real_, + PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + #MD<-MD[Region=="Rural"] + #MD<-MD[cluster3==1] + MD<-MD[,Clusterdiff:=ifelse(cluster3==7,1,0)] + + EngleD <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine2 & TOriginalFoodExpenditure_Per<1.2*FPLine2, + .(.N,Engle=weighted.mean((TOriginalFoodExpenditure+ServiceExp)/Total_Exp_Month,Weight), + FPLine2=mean(FPLine2)),by=.(Region,cluster3)] + + + EngleD[,PovertyLine:=FPLine2/Engle] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engle)],by=c("Region","cluster3")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=(TOriginalFoodExpenditure+ServiceExp)/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + ################Cluster################## + X1 <- MD[,.(SampleSize=.N,MetrPrice=weighted.mean(MetrPrice,Weight,na.rm = TRUE), + House_Share=weighted.mean(ServiceExp/Total_Exp_Month,Weight), + Engle=weighted.mean((TOriginalFoodExpenditure+ServiceExp)/Total_Exp_Month,Weight), + FPLine=weighted.mean(FPLine2,Weight), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight), + PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=cluster3] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=cluster3] + + + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","cluster3")) + FinalClusterResults <- rbind(FinalClusterResults,X) + + cat(MD[, weighted.mean(PovertyLine,Weight*Size)]) + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + Poors<-MD[FinalPoor==1] + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Step4- RealDeciles (version 2).R b/R/Archive/June 2020 (removed code files)/Step4- RealDeciles (version 2).R new file mode 100644 index 00000000..b3293583 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Step4- RealDeciles (version 2).R @@ -0,0 +1,216 @@ +#174-FindInitialPoor (version 2).R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +#library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD,Area)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + SMD[,Bundle_Value_H:=MetrPrice*16] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + SMD <- SMD[Bundle_Value_H<=15000000] #arbitrary measures, TODO: check in diff years + + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,Bundle_Value_H,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(Bundle_Value_H,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(Bundle_Value_H,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(Bundle_Value_H,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + + Compare<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + C<-SMD[,.(.N,Max=max(Total_Exp_Month_Per_nondurable), + Min=min(Total_Exp_Month_Per_nondurable), + Mean=mean(Total_Exp_Month_Per_nondurable)), + by=.(Region,NewArea,NewArea_Name,Decile)] + + + + # FirstSMD<-SMD[,.(HHID,Region,NewArea_Name,NewArea_Name,Percentile,Decile)] + # FirstSMD<-FirstSMD[,Realfirstpoor:=ifelse(Decile %in% 1:2,1,0)] + # save(FirstSMD, file=paste0(Settings$HEISProcessedPath,"Y",year,"FirstSMD.rda")) + + + + B<-MD[,.(.N,Mean=mean(MetrPrice)), + by=.(Region,NewArea_Name)] + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,Bundle_Value_H,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value_H,Weight,na.rm = TRUE)] + + # Index2 <- SMDIterationPoor[,.(PriceIndex= (weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1+ + # weighted.mean(Bundle_Value_H,Weight,na.rm = TRUE)/TPBV2)/2) + # ,by=.(Region,NewArea_Name)] + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(Bundle_Value_H,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + } + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,Bundle_Value_H,NewPoor,Decile,Percentile)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea_Name,Region)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + MDD1<-MD[,.(HHID,Decile)] + names(MDD1)<-c("HHID","Decile_FH") + save(MDD1,file = "MDD1.rda") + + load(file = "MDD2.rda") + MDD<-merge(MDD1,MDD2) + MDD<-as.data.table(MDD) + MDD<-MDD[,Decile_F:=as.numeric(Decile_F)] + MDD<-MDD[,Decile_FH:=as.numeric(Decile_FH)] + MDD[,diff:=Decile_F-Decile_FH] + + diff1<-MDD[diff==1] + diff2<-MDD[diff==-1] + diff<-MDD[diff==0] + #load( file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + #MD<-merge(MD,HHHouseProperties) + + #MD[,weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight), + # by=.(Region,Decile)][order(Region,Decile)] + + #MD[,weighted.mean(car=="True",Weight), + # by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(Cloth_Exp/Total_Exp_Month,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(Size,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(Region=="Urban",Weight), + by=.(Decile)][order(Decile)] + + MD[,weighted.mean(HActivityState=="Employed",Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(HEduYears>10,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(HEduYears>13,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + #MD[,weighted.mean(area/Size,Weight), + # by=.(Region,Decile)][order(Region,Decile)] + + MD[,weighted.mean(Amusement_Exp/Total_Exp_Month,Weight), + by=.(Region,Decile)][order(Region,Decile)] + + A<-MD[,.(.N,Max=max(Total_Exp_Month_Per_nondurable), + Min=min(Total_Exp_Month_Per_nondurable), + Mean=mean(Total_Exp_Month_Per_nondurable)), + by=.(Region,NewArea,NewArea_Name,Decile)] + + D<-MD[,.(.N,Mean=weighted.median(Durable_Exp/Size,Weight)), + by=.(Region,NewArea_Name,Decile)] + + #write.csv(A,file = "A.csv") + #write.csv(B,file = "B.csv") + #write.csv(C,file = "C.csv") + #write.csv(D,file = "D.csv") +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/Step4-RealDeciles - Copy.R b/R/Archive/June 2020 (removed code files)/Step4-RealDeciles - Copy.R new file mode 100644 index 00000000..3c6cc8ed --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Step4-RealDeciles - Copy.R @@ -0,0 +1,575 @@ +#174-FindInitialPoor.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices. + + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + + Compare1<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + ###Nominal- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + SMDIterationPoor[,sum(ThisIterationPoor),by=.(Region,NewArea_Name)][order(Region,NewArea_Name)] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + #cat("\n",sum(SMD[ProvinceCode==2,.N])) + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + SMD[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + SMD[,sum(Size*Weight),by=.(Region,Decile)][order(Region,Decile)] + + SMD[,weighted.mean(Size,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + + } + + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea_Name,Region)] + MD[,sum(Weight*Size), by=.(Decile,Region)][order(Region,Decile)] + MD[,sum(Weight*Size), by=.(Decile_Nominal,Region)][order(Region,Decile_Nominal)] + + +############################################# +A1<-MD[(Auto2_rani+Auto1_Khareji+Auto2_Khareji+Auto1_Irani>0), + .(A1=weighted.mean(Auto2_rani+Auto1_Khareji+Auto2_Khareji+ + Auto1_Irani,Weight)),by=Decile] + A2<-MD[(TV_Rangi_Irani+TV_Rangi_Khareji>0), + .(A2=weighted.mean(TV_Rangi_Irani+TV_Rangi_Khareji,Weight)),by=Decile] + A3<-MD[freezer2>0 ,.(A3=weighted.mean(freezer2,Weight)),by=Decile] + A4<-MD[OjaghGaz>0 , .(A4=weighted.mean(OjaghGaz,Weight)),by=Decile] + A5<-MD[Mashin_Lebasshooyi>0 ,.(A5=weighted.mean(Mashin_Lebasshooyi,Weight)),by=Decile] + A6<-MD[Mobile>0, .(A6=weighted.mean(Mobile,Weight)),by=Decile] + A7<-MD[Cooler_Gaz>0,.(A7=weighted.mean(Cooler_Gaz,Weight)),by=Decile] + A8<-MD[PC>0 ,.(A8= weighted.mean(PC,Weight)),by=Decile] + A9<-MD[Lastik_Mashin>0,.(A9=weighted.mean(Lastik_Mashin,Weight)),by=Decile] + A10<-MD[Motor_Machin>0 ,.(A10=weighted.mean(Motor_Machin,Weight)),by=Decile] + A11<-MD[Tamirat_Asasi>0 ,.(A11=weighted.mean(Tamirat_Asasi,Weight)),by=Decile] + + MD<-merge(MD,A1,by="Decile") + MD<-merge(MD,A2,by="Decile") + MD<-merge(MD,A3,by="Decile") + MD<-merge(MD,A4,by="Decile") + MD<-merge(MD,A5,by="Decile") + MD<-merge(MD,A6,by="Decile") + MD<-merge(MD,A7,by="Decile") + MD<-merge(MD,A8,by="Decile") + MD<-merge(MD,A9,by="Decile") + MD<-merge(MD,A10,by="Decile") + MD<-merge(MD,A11,by="Decile") + +MD[car=="True",Added1:=A1] +MD[tvcr=="True",Added2:=A2] +MD[freezer=="True" | frez_refrig=="True" | refrigerator=="True", + Added3:=A3] +MD[oven=="True",Added4:=A4] +MD[washer=="True",Added5:=A5] +MD[cellphone=="True",Added6:=A6] +MD[cooler_gas=="True",Added7:=A7] +MD[computer=="True",Added8:=A8] +MD[car=="True",Added9:=A9] +MD[car=="True",Added10:=A10] +MD[car=="True",Added11:=A11] + +x<-MD[,.(HHID,Decile,car,Added1)] + +dep <- c( "Auto2_rani", "Auto1_Khareji","Auto2_Khareji", "Auto1_Irani", + "TV_Rangi_Irani", "TV_Rangi_Khareji","freezer2", "OjaghGaz", + "Mashin_Lebasshooyi", "Mobile","Cooler_Gaz", "PC", + "Lastik_Mashin", "Motor_Machin","Tamirat_Asasi") + +MD[, Total_Depreciated_Durable := Reduce(`+`, .SD), .SDcols=dep] +MD[is.na(MD)] <- 0 + +MD[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added10+Added11] + +#Calculate Monthly Total Expenditures +nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" + ,"Add_to_NonDurable" + ,"Added" + #, "Total_Depreciated_Durable" +) +w <- c(nw, "Medical_Exp", + "Durable_NoDep","Durable_Emergency") + + +MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] +MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + +MD[,weighted.mean(Total_Exp_Month,Weight)] +MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + +MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] +MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + +################################################################### + +SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + +#Choose one of these +SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] +#SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] +#SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] +#SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + +SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + +#Real Prices. + +T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] +TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + +SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + +X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] +X[,V:=V1+V2] + +SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + +SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + +Compare1<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + +SMD[,V1:=NULL] +SMD[,V2:=NULL] +SMD[,V:=NULL] + + +SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + +###Real- Country +SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country +SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight +SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] +SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + +###Nominal- Country +SMD<- SMD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) +SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight +SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] +SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + +SMD[,NewPoor:=1] +SMD[,ThisIterationPoor:=0] +i <- 0 +while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + SMDIterationPoor[,sum(ThisIterationPoor),by=.(Region,NewArea_Name)][order(Region,NewArea_Name)] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + #cat("\n",sum(SMD[ProvinceCode==2,.N])) + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + SMD[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + SMD[,sum(Size*Weight),by=.(Region,Decile)][order(Region,Decile)] + + SMD[,weighted.mean(Size,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + +} + +MD[,Bundle_Value:=NULL] +MD[,NewPoor:=NULL] +MD[,Decile:=NULL] +MD[,Percentile:=NULL] +MD[,Decile_Nominal:=NULL] +MD[,Percentile_Nominal:=NULL] +MD[,A1:=NULL] +MD[,A2:=NULL] +MD[,A3:=NULL] +MD[,A4:=NULL] +MD[,A5:=NULL] +MD[,A6:=NULL] +MD[,A7:=NULL] +MD[,A8:=NULL] +MD[,A9:=NULL] +MD[,A10:=NULL] +MD[,A11:=NULL] +MD[,InitialPoor:=NULL] + + +MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") +setnames(MD,"NewPoor","InitialPoor") + +###################################################################### +A1<-MD[(Auto2_rani+Auto1_Khareji+Auto2_Khareji+Auto1_Irani>0), + .(A1=weighted.mean(Auto2_rani+Auto1_Khareji+Auto2_Khareji+ + Auto1_Irani,Weight)),by=Decile] +A2<-MD[(TV_Rangi_Irani+TV_Rangi_Khareji>0), + .(A2=weighted.mean(TV_Rangi_Irani+TV_Rangi_Khareji,Weight)),by=Decile] +A3<-MD[freezer2>0 ,.(A3=weighted.mean(freezer2,Weight)),by=Decile] +A4<-MD[OjaghGaz>0 , .(A4=weighted.mean(OjaghGaz,Weight)),by=Decile] +A5<-MD[Mashin_Lebasshooyi>0 ,.(A5=weighted.mean(Mashin_Lebasshooyi,Weight)),by=Decile] +A6<-MD[Mobile>0, .(A6=weighted.mean(Mobile,Weight)),by=Decile] +A7<-MD[Cooler_Gaz>0,.(A7=weighted.mean(Cooler_Gaz,Weight)),by=Decile] +A8<-MD[PC>0 ,.(A8= weighted.mean(PC,Weight)),by=Decile] +A9<-MD[Lastik_Mashin>0,.(A9=weighted.mean(Lastik_Mashin,Weight)),by=Decile] +A10<-MD[Motor_Machin>0 ,.(A10=weighted.mean(Motor_Machin,Weight)),by=Decile] +A11<-MD[Tamirat_Asasi>0 ,.(A11=weighted.mean(Tamirat_Asasi,Weight)),by=Decile] + +MD<-merge(MD,A1,by="Decile") +MD<-merge(MD,A2,by="Decile") +MD<-merge(MD,A3,by="Decile") +MD<-merge(MD,A4,by="Decile") +MD<-merge(MD,A5,by="Decile") +MD<-merge(MD,A6,by="Decile") +MD<-merge(MD,A7,by="Decile") +MD<-merge(MD,A8,by="Decile") +MD<-merge(MD,A9,by="Decile") +MD<-merge(MD,A10,by="Decile") +MD<-merge(MD,A11,by="Decile") + +MD[car=="True",Added1:=A1] +MD[tvcr=="True",Added2:=A2] +MD[freezer=="True" | frez_refrig=="True" | refrigerator=="True", + Added3:=A3] +MD[oven=="True",Added4:=A4] +MD[washer=="True",Added5:=A5] +MD[cellphone=="True",Added6:=A6] +MD[cooler_gas=="True",Added7:=A7] +MD[computer=="True",Added8:=A8] +MD[car=="True",Added9:=A9] +MD[car=="True",Added10:=A10] +MD[car=="True",Added11:=A11] + +x<-MD[,.(HHID,Decile,car,Added1)] + +dep <- c( "Auto2_rani", "Auto1_Khareji","Auto2_Khareji", "Auto1_Irani", + "TV_Rangi_Irani", "TV_Rangi_Khareji","freezer2", "OjaghGaz", + "Mashin_Lebasshooyi", "Mobile","Cooler_Gaz", "PC", + "Lastik_Mashin", "Motor_Machin","Tamirat_Asasi") + +MD[, Total_Depreciated_Durable := Reduce(`+`, .SD), .SDcols=dep] +MD[is.na(MD)] <- 0 + +MD[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added10+Added11] + +#Calculate Monthly Total Expenditures +nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", + "Transportation_Exp", "Other_Exp" + ,"Add_to_NonDurable" + ,"Added" + #, "Total_Depreciated_Durable" +) +w <- c(nw, "Medical_Exp", + "Durable_NoDep","Durable_Emergency") + + +MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] +MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + +MD[,weighted.mean(Total_Exp_Month,Weight)] +MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)] + +MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] +MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + +################################################################### + +SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + +#Choose one of these +SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] +#SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] +#SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] +#SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + +SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + +#Real Prices. + +T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] +TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + +SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + +X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] +X[,V:=V1+V2] + +SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + +SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + +Compare1<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + +SMD[,V1:=NULL] +SMD[,V2:=NULL] +SMD[,V:=NULL] + + +SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + +###Real- Country +SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country +SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight +SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] +SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + +###Nominal- Country +SMD<- SMD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) +SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight +SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] +SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + +SMD[,NewPoor:=1] +SMD[,ThisIterationPoor:=0] +i <- 0 +while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + SMDIterationPoor[,sum(ThisIterationPoor),by=.(Region,NewArea_Name)][order(Region,NewArea_Name)] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + #cat("\n",sum(SMD[ProvinceCode==2,.N])) + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + SMD[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + SMD[,sum(Size*Weight),by=.(Region,Decile)][order(Region,Decile)] + + SMD[,weighted.mean(Size,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + +} + +MD[,Bundle_Value:=NULL] +MD[,NewPoor:=NULL] +MD[,Decile:=NULL] +MD[,Percentile:=NULL] +MD[,Decile_Nominal:=NULL] +MD[,Percentile_Nominal:=NULL] +MD[,InitialPoor:=NULL] + + +MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") +setnames(MD,"NewPoor","InitialPoor") + +###################################################################### +save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + +A<-merge(A3,A2) +A<-merge(A,A1) +A<-merge(A,A4) +A<-merge(A,A5) +A<-merge(A,A6) +A<-merge(A,A7) +A<-merge(A,A8) +A<-merge(A,A9) +A<-merge(A,A10) +A<-merge(A,A11) + + +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/Subsidy.R b/R/Archive/June 2020 (removed code files)/Subsidy.R new file mode 100644 index 00000000..fb710ef3 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Subsidy.R @@ -0,0 +1,74 @@ +# 152-Subsidy.R +# 2019: Arin Shahbazian + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHSubsidy =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +SubsidyTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_SubsidyWage)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + Subsidywt <- SubsidyTable[Year==year] + tab <- Subsidywt$Table + if(is.na(tab)) + next + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + UTSubsidyW <- Tables[[paste0("U",year,tab)]] + RTSubsidyW <- Tables[[paste0("R",year,tab)]] + TSubsidyW <- rbind(UTSubsidyW,RTSubsidyW,fill=TRUE) + for(n in names(TSubsidyW)){ + x <- which(Subsidywt==n) + if(length(x)>0) + setnames(TSubsidyW,n,names(Subsidywt)[x]) + } + pcols <- intersect(names(TSubsidyW),c("HHID","dimension","Subsidy")) + TSubsidyW <- TSubsidyW[,pcols,with=FALSE] + + + + TSubsidyW[is.na(TSubsidyW)] <- 0 + SubsidyWageData <- TSubsidyW[,lapply(.SD,sum),by=HHID] + save(SubsidyWageData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) + + + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + UTSubsidyW[,check1:=Dycol05/(Dycol04*Dycol03)] + UMD<-MD[Region=="Urban"] + UMD<-UMD[,.(HHID,FinalPoor,Decile,Decile_Nominal,Month)] + names(UMD) <- c("Address", "FinalPoor","Decile","Decile_Nominal","Month") + UTSubsidyW<-merge(UTSubsidyW,UMD) + + RTSubsidyW[,check1:=Dycol05/(Dycol04*Dycol03)] + RMD<-MD[Region=="Rural"] + RMD<-RMD[,.(HHID,FinalPoor,Decile,Decile_Nominal,Month)] + names(RMD) <- c("Address", "FinalPoor","Decile","Decile_Nominal","Month") + RTSubsidyW<-merge(RTSubsidyW,RMD) + + + save(UTSubsidyW, file = paste0(Settings$HEISProcessedPath,"Y",year,"UTSubsidyW.rda")) + save(RTSubsidyW, file = paste0(Settings$HEISProcessedPath,"Y",year,"RTSubsidyW.rda")) + + + xU<-UTSubsidyW[check1>1000000] + xR<-RTSubsidyW[check1>1000000] + + save(xU,file = "xU.rda") + save(xR,file = "xR.rda") +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/TestPovertyModelsForAllNewAreas.R b/R/Archive/June 2020 (removed code files)/TestPovertyModelsForAllNewAreas.R new file mode 100644 index 00000000..8edc758d --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/TestPovertyModelsForAllNewAreas.R @@ -0,0 +1,142 @@ +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Classification Models =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +options(java.parameters = "-Xmx5g") +library(readxl) +library(data.table) +library(stringr) +library(janitor) +library(dplyr) +library(Hmisc) +library(caret) +library(caretEnsemble) +library(gbm) +library(pROC) +library(glmnet) +library(parallel) +library(doParallel) + +acml <- c("glm","gbm","nnet") +year <- 97 + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Data4ClassifactionModels.rda")) +#Data <- Data[,-39,with=FALSE] +# Data <- Data[,Percentile:=as.numeric(paste0(Percentile))] +# Data <- Data[,Percentile_Nominal:=as.numeric(paste0(Percentile_Nominal))] +D <- Data[,ProvinceName:=NULL] +D <- D[,Percentile:=NULL] +D <- D[,Percentile_Nominal:=NULL] +D <- D[,Decile:=NULL] +D <- D[,Decile_Nominal:=NULL] +D <- D[,NewArea:=NULL] +D <- D[,cluster3:=as.factor(cluster3)] +remnames <- c("Total_Exp_Month_Per_nondurable","PovertyLine","TOriginalFoodExpenditure_Per", + "Engel","InitialPoor","FPLine","HHID","Real_Total_Exp_Month","Weight","Year","NetIncome", + "Real_FoodExpenditure","Real_Durable_Exp","cluster3","NewArea_Name") +NewAreaList <- unique(D$NewArea_Name) + +ResultsTestsData <- data.table() + + +registerDoParallel(6) +getDoParWorkers() + + + +for(AreaName in NewAreaList){ + cat("\n\n======================\n",AreaName,"\n") + D <- D[,ThisArea := ifelse(NewArea_Name == AreaName,1,0)] + D <- D[,SIS := ifelse(NewArea_Name %in% c("Sh_Zahedan","Sistan"),1,0)] + + dm <- dummyVars("~.",data = D[,setdiff(names(D),remnames),with=FALSE], fullRank = FALSE) + D2 <- as.data.table(predict(dm,D)) + #prop.table(table(D2$FinalPoor)) + + outcomename <- "FinalPoor" + predictornames <- names(D2)[! names(D2) %in% c(outcomename,"ThisArea","SIS")] + + D2 <- D2[,FP:=as.factor(ifelse(FinalPoor==1,"Poor","NotPoor"))] + outcomename <- "FP" + + SepD <- D2[ThisArea==1,] + D3 <- D2[ThisArea == 0 & SIS==0,] + splitIndex <- createDataPartition(D3[[outcomename]],p=.75,list = FALSE,times = 1) + trainD <- D3[splitIndex,] + testD <- D3[-splitIndex,] + + + + X_train <- trainD[,predictornames,with=FALSE] + X_train[is.na(X_train)] <- 0 + y_train <- trainD[[outcomename]] + + X_test <- testD[,predictornames,with=FALSE] + X_test[is.na(X_test)] <- 0 + y_test <- testD[[outcomename]] + + X_Sep <- SepD[,predictornames,with=FALSE] + X_Sep[is.na(X_Sep)] <- 0 + y_Sep <- SepD[[outcomename]] + + + + #describe(X_train) + # featurePlot(x = X_test,y = y_test, + # between=list(x=1,y=1), + # type=c("g","p","smooth")) + + myctl <- trainControl(method = "cv", + number = 5, + savePredictions = "final", + allowParallel = TRUE, + classProbs = TRUE) + + + + t0 <- Sys.time() + Results <- c() + SepRes <- c() + for(mdl in acml){ + try({ + cat("\n",mdl," ... ") + if(mdl=="glm"){ objModel <- caret::train(X_train,y_train, + method = mdl, + trControl = myctl, + family = "binomial", + # metric = "ROC", + preProcess = c("center","scale")) + }else{ + + objModel <- caret::train(X_train,y_train, + method = mdl, + trControl = myctl, + # metric = "ROC", + preProcess = c("center","scale")) + } + predictions_test <- predict(object = objModel, X_test, type="raw") + t1 <- Sys.time() + cat(as.character(t1),"\t[",as.character(t1-t0),"]") + Results[mdl] <- postResample(pred=as.factor(predictions_test), obs=as.factor(y_test))[1] + cat("\tAccuracy:",Results[mdl],'\t') + + predictions_Sep <- predict(object = objModel, X_Sep, type="raw") + cat(as.character(t1),"\t[",as.character(t1-t0),"]\n") + SepRes[mdl] <- postResample(pred=as.factor(predictions_Sep), obs=as.factor(y_Sep))[1] + + t0 <- t1 + + ResultsTestsData <- rbind(ResultsTestsData, + data.table(SepArea=AreaName,Model=mdl,Test=Results[mdl],SepRes=SepRes[mdl])) + }) + } + + print(Results) + print(SepRes) +} + + +View(ResultsTestsData) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/TornqvistPriceIndex.R b/R/Archive/June 2020 (removed code files)/TornqvistPriceIndex.R new file mode 100644 index 00000000..1d9f97f8 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/TornqvistPriceIndex.R @@ -0,0 +1,138 @@ +# Tornqvist Price Index +# +# Copyright 2020 Zahra Shahidi & Majid Einian + + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +# Settings$InitialPoorPercentile <- 1:22 +# Settings$startyear <- 77 +#library(readxl) +library(data.table) +#library(ggplot2) + +# Function Defs --------------------------------------------------------------------------------- +CalcTornqvistIndex <- function(DataTable){ + X <- DataTable[,.(N=.N,wi1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wi2=weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE), + pi1=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + pi2=weighted.mean(MetrPrice,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,wi:=wi1+wi2] + X[,wi1:=wi1/wi] + X[,wi2:=wi2/wi] + XTeh<-X[NewArea_Name=="Sh_Tehran"] + wk1<-XTeh$wi1 # k == Sh_Tehran + wk2<-XTeh$wi2 + pk1<-XTeh$pi1 + pk2<-XTeh$pi2 + + X[,SimpleIndex:= .5 * pi1/pk1 + .5 * pi2/pk2] + X[,AnotherIndex:= wi1 * pi1/pk1 + wi2 * pi2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wi1)/2 * log(pi1/pk1) + (wk2+wi2)/2 * log(pi2/pk2) ) ] + + + # print(X[Region=="Rural" & NewArea_Name=="Semnan",]) + # if("Percentile" %in% names(DataTable)) + # print(DataTable[Region=="Rural" & NewArea_Name=="Semnan",.(min=min(as.integer(Percentile)),max=max(as.integer(Percentile))),by=.(Region,NewArea_Name)]) + + return(X[,.(Region,NewArea_Name,PriceIndex=TornqvistIndex)]) +} + + +DoDeciling_SetInitialPoor <- function(DataTable,PriceIndexDT){ + + if("PriceIndex" %in% names(DataTable)){ + DataTable <- DataTable[,PriceIndex:=NULL] + } + DataTable <- merge(DataTable,PriceIndexDT,by=c("Region","NewArea_Name")) + + + DataTable <- DataTable[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] + DataTable <- DataTable[,xr25th:=.SD[25,Total_Exp_Month_Per_nondurable_Real],by=.(Region,NewArea_Name)] + DataTable <- DataTable[,First25:=ifelse(Total_Exp_Month_Per_nondurable_Real<=xr25th,1,0)] + + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] # I removed Region from ordering, deciling is not divided into rural/urban (M.E. 5/11/2020) + DataTable <- DataTable[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + + #Calculate deciles by weights + DataTable <- DataTable[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + DataTable <- DataTable[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + DataTable <- DataTable[,InitialPoorBasedOnPercentile:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + + return(DataTable) +} + + # Main loop for years ---------------------------------------------------------------- +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + PriceDT <- CalcTornqvistIndex(SMD) + SMD <- DoDeciling_SetInitialPoor(SMD,PriceDT) + + + + SMD[,InitialPoorBasedOnPercentileLastIteration:=1] + i <- 0 + while(SMD[,sum((InitialPoorBasedOnPercentile-InitialPoorBasedOnPercentileLastIteration)^2)]>0.001*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,InitialPoorBasedOnPercentileLastIteration:=InitialPoorBasedOnPercentile] + + SMDIterationPoor <- SMD[InitialPoorBasedOnPercentileLastIteration==1 | First25==1 ] + + if(nrow(SMDIterationPoor[,.N,by=.(Region,NewArea_Name)])<78) + stop("HERE Some Area goes missing!") + if(min(SMDIterationPoor[,.N,by=.(Region,NewArea_Name)]$N)==0) + stop("HERE Some Area goes missing!") + + PriceDTBasedOnThisIterationPoor <- CalcTornqvistIndex(SMDIterationPoor) + # print(PriceDTBasedOnThisIterationPoor[Region=="Rural" & NewArea_Name=="Semnan",]) + SMD <- DoDeciling_SetInitialPoor(SMD,PriceDTBasedOnThisIterationPoor) + + cat("\n",i,":",SMD[,sum((InitialPoorBasedOnPercentile-InitialPoorBasedOnPercentileLastIteration)^2)]) + } + + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,InitialPoorBasedOnPercentile,Decile,Percentile)],by="HHID") + setnames(MD,"InitialPoorBasedOnPercentile","InitialPoor") # or maybe InitialPoorBasedOnRealIterativePercentile ! + + + MD[,weighted.mean(InitialPoor,Weight,na.rm = TRUE), by=.(NewArea_Name,Region)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ",(endtime-starttime)["elapsed"]," seconds") diff --git a/R/Archive/June 2020 (removed code files)/Update merged data.R b/R/Archive/June 2020 (removed code files)/Update merged data.R new file mode 100644 index 00000000..c457f971 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Update merged data.R @@ -0,0 +1,336 @@ + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN398.rda")) + + SMD <- MD[,.(HHID,Region,ProvinceCode, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + Durable_Exp, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1*V1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2*V2)/V + ,by=.(Region,NewArea_Name)] + + Compare1<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + ###Nominal- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable)] #Deciling in Urban- Rural(Nominal) + #SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Nominal- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable)] #Deciling in Country(Nominal) + SMD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile_Nominal:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile_Nominal:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + SMDIterationPoor[,sum(ThisIterationPoor),by=.(Region,NewArea_Name)][order(Region,NewArea_Name)] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + weighted.mean(ServiceExp/Total_Exp_Month,Weight)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1*V1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2*V2)/V) + ,by=.(Region,NewArea_Name)] + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + + ###Real- Urban & Rural + #SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] #Deciling in Urban- Rural + #SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + #SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + #SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + ###Real- Country + SMD<- SMD[order(Total_Exp_Month_Per_nondurable_Real)] #Deciling in Country + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD98.rda")) + + #cat("\n",sum(SMD[ProvinceCode==2,.N])) + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + SMD[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + SMD[,sum(Size*Weight),by=.(Region,Decile)][order(Region,Decile)] + + SMD[,weighted.mean(Size,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + # NewDecile<-SMD[,.(HHID,Decile)] + # names(NewDecile)<-c("HHID","NewDecile") + # save(NewDecile,file=paste0(Settings$HEISProcessedPath,"Y",year,"NewDecile.rda")) + + # OldDecile<-SMD[,.(HHID,Decile)] + # names(OldDecile)<-c("HHID","OldDecile") + # save(OldDecile,file=paste0(Settings$HEISProcessedPath,"Y",year,"OldDecile.rda")) + + } + + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewDecile.rda")) + #DecileCompare<-merge(as.data.table(OldDecile),NewDecile,by="HHID") + #DecileCompare[,Diff:=as.numeric(NewDecile)-as.numeric(OldDecile)] + #DecileCompare2<- DecileCompare[,.(.N),by=Diff] + + #ggplot(DecileCompare2, aes(fill=factor(Diff), y=N, x=factor(Diff))) + + # geom_bar(position="dodge", stat="identity") + theme_bw() + + # theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + # geom_text(aes(label=N), position=position_dodge(width=0.9), vjust=-0.25) + + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile,Decile_Nominal,Percentile_Nominal)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea_Name,Region)] + MD[,sum(Weight*Size), by=.(Decile,Region)][order(Region,Decile)] + MD[,sum(Weight*Size), by=.(Decile_Nominal,Region)][order(Region,Decile_Nominal)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor98.rda")) + +} + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor98.rda")) + + #####Clustering##### + dt2Urban<-MD[Region=="Urban",.(NewArea,NewArea_Name,Region,HHID)] + dt2Rural<-MD[Region=="Rural",.(NewArea,NewArea_Name,Region,HHID)] + + #####Urban##### + dt2Urban<-dt2Urban[NewArea_Name=="Sh_Tehran",cluster3:=1] + + dt2Urban<-dt2Urban[NewArea_Name=="Sh_Shiraz" | NewArea_Name=="Sh_Esfahan" | + NewArea_Name=="Sh_Bandarabas" | + NewArea_Name=="Sh_Karaj" | + NewArea_Name=="Sh_Rasht", + cluster3:=2] + + dt2Urban<-dt2Urban[NewArea_Name=="Gilan" | NewArea_Name=="Alborz" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Ghazvin" | + NewArea_Name=="Markazi" | NewArea_Name=="Esfahan" | + NewArea_Name=="Ghom" | NewArea_Name=="Sh_Arak" | + NewArea_Name=="Tehran" | NewArea_Name=="Sh_Tabriz" | + NewArea_Name=="Mazandaran" | NewArea_Name=="Sh_Yazd" , + cluster3:=3] + + dt2Urban<-dt2Urban[ NewArea_Name=="Yazd" | + NewArea_Name=="Sh_Kerman" | + NewArea_Name=="Sh_Hamedan" | + NewArea_Name=="Chaharmahal" | + NewArea_Name=="Zanjan" | NewArea_Name=="Hamedan" | + NewArea_Name=="Sh_Mashhad" | NewArea_Name=="Sh_Urmia" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Hormozgan"| + NewArea_Name=="Booshehr" | + NewArea_Name=="Semnan" | NewArea_Name=="Fars", + cluster3:=4] + + dt2Urban<-dt2Urban[ NewArea_Name=="Sh_Kermanshah" | NewArea_Name== "Az_Sharghi" | + NewArea_Name=="Kerman" | + NewArea_Name=="Ardebil" | + NewArea_Name=="Ilam" , + cluster3:=5] + + dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" | NewArea_Name=="Kordestan" | + NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Kermanshah" | NewArea_Name=="Lorestan" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Golestan", + cluster3:=6] + + dt2Urban<-dt2Urban[NewArea_Name=="Sistan" | NewArea_Name=="Sh_Zahedan", + cluster3:=7] + + save(dt2Urban,file ="dt2Urban.rda") + #####Rural##### + dt2Rural<-dt2Rural[ NewArea_Name=="Tehran" | NewArea_Name=="Alborz", + cluster3:=8] + + dt2Rural<-dt2Rural[NewArea_Name=="Esfahan" | NewArea_Name=="Mazandaran" , + cluster3:=9] + + dt2Rural<-dt2Rural[ NewArea_Name=="Ghazvin" | NewArea_Name=="Yazd" | + NewArea_Name=="Gilan" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Booshehr", + cluster3:=10] + + dt2Rural<-dt2Rural[ NewArea_Name=="Zanjan" | + NewArea_Name=="Chaharmahal"| NewArea_Name=="Hormozgan" | NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Ghom" | + NewArea_Name=="Fars" | + NewArea_Name=="Markazi" | NewArea_Name=="Semnan", + cluster3:=11] + + dt2Rural<-dt2Rural[ NewArea_Name=="Hamedan" | + NewArea_Name=="Az_Gharbi" | NewArea_Name=="Kermanshah" | + NewArea_Name=="Kerman" | NewArea_Name=="Golestan" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Lorestan" | + NewArea_Name=="Kordestan"| + NewArea_Name=="Khoozestan" | + NewArea_Name=="Ardebil" | NewArea_Name=="Ilam", + cluster3:=12] + + dt2Rural<-dt2Rural[ NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Sistan" , + cluster3:=13] + + save(dt2Rural,file ="dt2Rural.rda") + #####Merge##### + dt2total<-rbind(dt2Urban,dt2Rural) + + + dt2total[,HHID:=NULL] + dt2total<-distinct(dt2total) + + MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered98.rda")) +} + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor98.rda")) + MD<-MD[CountyCode==2301] + #load(file = "CPI.rda") + #CPI<-as.data.table(CPI) + #CPI<-CPI[,Decile:=as.character(Decile)] + #MD<-merge(MD,CPI,by="Decile") + + #Determine Food (Equal 2100 KCal) Bundle + #MDPoors<-MD[InitialPoor==1] + MD[,NewPoor:=InitialPoor] + #MD[,NewPoor:=ifelse(Decile %in% c(1,2,3,4),1,0)] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>0.001*nrow(MD[NewPoor==1]) & i <=15){ + # cat(nrow(MD[NewPoor==1])) + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(Region)] + MD <- merge(MD,MDP,by=c("Region")) + # print(MDP) + #x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + # MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex,Month,ServiceExp, + # HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice,Total_Exp_Month_nondurable, + # Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + # Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + # EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor98.rda")) + MD[,weighted.mean(FinalFoodPoor,Weight)] + # MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + # UrbanFinalfood<-MDFinalfood[Region=="Urban"] + # RuralFinalfood<-MDFinalfood[Region=="Rural"] + # save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + # save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + # + MD[,weighted.mean(FinalFoodPoor,Weight),by=c("Region","ProvinceCode")][order(Region,ProvinceCode)] + #MD[,weighted.mean(FinalFoodPoor,Weight),by=cluster3][order(cluster3)] +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/June 2020 (removed code files)/Updated Initial results.R b/R/Archive/June 2020 (removed code files)/Updated Initial results.R new file mode 100644 index 00000000..d6eeca04 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Updated Initial results.R @@ -0,0 +1,348 @@ +# 177- Step 7,8,9-Poverty Line.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +FinalCountryResults <- data.table(Year=NA_integer_,PovertyLine=NA_real_, + Engle=NA_real_,Bundle_Value=NA_real_, + Total_Exp_Month_Per=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] +FinalRegionResults <- data.table(Year=NA_integer_,Region=NA_integer_,PovertyLine=NA_real_,PovertyHCR=NA_real_, + PovertyGap=NA_real_,PovertyDepth=NA_real_)[0] + + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor98.rda")) + + #MD<-MD[Region=="Rural"] + #MD<-MD[cluster3==13] +MD<-MD[CountyCode==2301] + + + EngleD<- MD[TOriginalFoodExpenditure_Per>0.8*FPLine & + TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region)] + + + + EngleD[,PovertyLine:=FPLine/Engel] + MD <- merge(MD,EngleD[,.(Region,PovertyLine,Engel)],by=c("Region")) + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD<-MD[,HHEngle:=TOriginalFoodExpenditure/Total_Exp_Month,Weight] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS98.rda")) + + + MD[,FGT1M:=(PovertyLine-Total_Exp_Month_Per)/PovertyLine] + MD[,FGT2M:=((PovertyLine-Total_Exp_Month_Per)/PovertyLine)^2] + + + ################Country################## + + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size), + Engle=weighted.mean(HHEngle,Weight), + Bundle_Value=weighted.mean(Bundle_Value,Weight), + Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight))] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size))] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by="Year") + FinalCountryResults <- rbind(FinalCountryResults,X) + + ################Region################## + X1 <- MD[,.(PovertyLine=weighted.mean(PovertyLine,Weight*Size), + PovertyHCR=weighted.mean(FinalPoor,Weight*Size)),by=Region] + X2 <- MD[FinalPoor==1,.(PovertyGap=weighted.mean(FGT1M,Weight*Size), + PovertyDepth=weighted.mean(FGT2M,Weight*Size)),by=Region] + X1[,Year:=year] + X2[,Year:=year] + X <- merge(X1,X2,by=c("Year","Region")) + FinalRegionResults <- rbind(FinalRegionResults,X) + + + + + cat(MD[, weighted.mean(FinalPoor,Weight*Size)],"\t") + cat(MD[, weighted.mean(PovertyLine,Weight*Size)],"\t") + cat(MD[, weighted.mean(FPLine,Weight*Size)],"\t") + cat(MD[, sum(Weight*Size)],"\t") + cat(MD[, weighted.mean(Engel,Weight*Size)],"\t") + + MD1<-MD[,.(HHID,FinalPoor)] + save(MD1,file=paste0(Settings$HEISProcessedPath,"Y",year,"POORS.rda")) + + Poors<-MD[FinalPoor==1] + +MD[,weighted.mean(Bundle_Value,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(Bundle_Value,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(Bundle_Value,Weight),by=.(Region)][order(Region)] +MD[,weighted.mean(Bundle_Value,Weight)] + +MD[,weighted.mean(FPLine,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(FPLine,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(FPLine,Weight),by=.(Region)][order(Region)] +MD[,weighted.mean(FPLine,Weight)] + +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region)][order(Region)] +MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight)] + +MD[as.numeric(Decile)==1,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region)][order(Region)] +MD[as.numeric(Decile)==1,weighted.mean(TFoodKCaloriesHH_Per,Weight)] + +MD[,weighted.mean(OriginalFoodExpenditure_Per,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(OriginalFoodExpenditure_Per,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(OriginalFoodExpenditure_Per,Weight),by=.(Region)][order(Region)] +MD[,weighted.mean(OriginalFoodExpenditure_Per,Weight)] + +MD[FinalPoor==1,weighted.mean(OriginalFoodExpenditure_Per,Weight),by=.(Region)][order(Region)] +MD[FinalPoor==1,weighted.mean(OriginalFoodExpenditure_Per,Weight)] + +D<-MD[,.(Food=weighted.mean(FoodExpenditure,Weight.x), + Total=weighted.mean(Total_Exp_Month,Weight.x))] + +D1<-MD[,.(Food=weighted.mean(FoodExpenditure,Weight.x), + Total=weighted.mean(Total_Exp_Month,Weight.x)),by=Decile] + +D2<-MD[,.(Food=weighted.mean(FoodExpenditure/EqSizeCalory,Weight.x), + Total=weighted.mean(Total_Exp_Month_Per,Weight.x)),by=Decile] + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodCon.rda")) +MD<-merge(MD,TotalFoodCon,by="HHID") + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) +MD<-merge(MD,TotalFoodExp,by="HHID") + + +MD[,weighted.mean(G0111,Weight.x)] +MD[,weighted.mean(G01181,Weight.x)] +MD[,weighted.mean(G01121,Weight.x)] +MD[,weighted.mean(G01176,Weight.x)] +MD[,weighted.mean(G01131,Weight.x)] +MD[,weighted.mean(`011164`,Weight.x)] +MD[,weighted.mean(`011424`,Weight.x)] +MD[,weighted.mean(G0116,Weight.x)] +MD[,weighted.mean(G01123,Weight.x)] +MD[,weighted.mean(G01114,Weight.x)] +MD[,weighted.mean(`011428`,Weight.x)] +MD[,weighted.mean(G01153+G01152+G01151,Weight.x)] +MD[,weighted.mean(G0117,Weight.x)] +MD[,weighted.mean(G01141,Weight.x)] +MD[,weighted.mean(`011731`,Weight.x)] +MD[,weighted.mean(G01144,Weight.x)] +MD[,weighted.mean(G01165+G01166,Weight.x)] + +MD[FinalPoor==1,weighted.mean(G0111,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01181,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01121+SheepMeatGram,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01176,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01131,Weight.x)] +MD[FinalPoor==1,weighted.mean(`011164`,Weight.x)] +MD[FinalPoor==1,weighted.mean(`011424`,Weight.x)] +MD[FinalPoor==1,weighted.mean(G0116,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01123,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01114,Weight.x)] +MD[FinalPoor==1,weighted.mean(`011428`,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01153+G01152+G01151,Weight.x)] +MD[FinalPoor==1,weighted.mean(G0117,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01141,Weight.x)] +MD[FinalPoor==1,weighted.mean(`011731`,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01144,Weight.x)] +MD[FinalPoor==1,weighted.mean(G01165+G01166,Weight.x)] + +MD[,weighted.mean(G0111,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01181,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01121+SheepMeatGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01176,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01131,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(`011164`,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(`011424`,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G0116,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01123,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01114,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(`011428`,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01153+G01152+G01151,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G0117,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01141,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(`011731`,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01144,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(G01165+G01166,Weight.x), by=Decile][order(Decile)] + + +MD[,weighted.mean(GrainGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(GhandGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(CowMeatGram+SheepMeatGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(BeansGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(FishandShrimpsGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(MacaroniGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Yogurt_PasturizedGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(TreeFruitsGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(PoultryMeat_MGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(BreadGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Cheese_PasturizedGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Oil_NabatiGram+Oil_AnimalGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Sabzi_AshGram+Sabzi_KhordanGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(MilkGrams,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(SibzaminiGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight), by=Decile][order(Decile)] +MD[,weighted.mean(NutsGrams,Weight), by=Decile][order(Decile)] + +MD[,weighted.mean(GrainGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(GhandGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(CowMeatGram+SheepMeatGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(BeansGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(FishandShrimpsGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(MacaroniGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Yogurt_PasturizedGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(TreeFruitsGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(PoultryMeat_MGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(BreadGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Cheese_PasturizedGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Oil_NabatiGram+Oil_AnimalGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Sabzi_AshGram+Sabzi_KhordanGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(MilkGrams,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(SibzaminiGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight.x), by=Decile][order(Decile)] +MD[,weighted.mean(NutsGrams,Weight.x), by=Decile][order(Decile)] + + +MD[FinalPoor==1,weighted.mean(GrainGrams,Weight)] +MD[FinalPoor==1,weighted.mean(GhandGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(CowMeatGram+SheepMeatGram,Weight)] +MD[FinalPoor==1,weighted.mean(BeansGrams,Weight)] +MD[FinalPoor==1,weighted.mean(FishandShrimpsGrams,Weight)] +MD[FinalPoor==1,weighted.mean(MacaroniGram,Weight)] +MD[FinalPoor==1,weighted.mean(Yogurt_PasturizedGram,Weight)] +MD[FinalPoor==1,weighted.mean(TreeFruitsGrams,Weight)] +MD[FinalPoor==1,weighted.mean(PoultryMeat_MGram,Weight)] +MD[FinalPoor==1,weighted.mean(BreadGrams,Weight)] +MD[FinalPoor==1,weighted.mean(Cheese_PasturizedGram,Weight)] +MD[FinalPoor==1,weighted.mean(Oil_NabatiGram+Oil_AnimalGram,Weight)] +MD[FinalPoor==1,weighted.mean(Sabzi_AshGram+Sabzi_KhordanGram,Weight)] +MD[FinalPoor==1,weighted.mean(MilkGrams,Weight)] +MD[FinalPoor==1,weighted.mean(SibzaminiGram,Weight)] +MD[FinalPoor==1,weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight)] +MD[FinalPoor==1,weighted.mean(NutsGrams,Weight)] + + +MD[as.numeric(Decile)==1,weighted.mean(GrainGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(GhandGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Cow_LiveGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(BeansGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(FishandShrimpsGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(MacaroniGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Yogurt_PasturizedGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(TreeFruitsGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(PoultryMeat_MGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(BreadGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Cheese_PasturizedGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Oil_NabatiGram+Oil_AnimalGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Sabzi_AshGram+Sabzi_KhordanGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(MilkGrams,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(SibzaminiGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(Egg_MashinGram+Egg_NonMashinGram,Weight)] +MD[as.numeric(Decile)==1,weighted.mean(NutsGrams,Weight)] + + + + + + +MD[as.numeric(Decile)<2,weighted.mean(FinalPoor,Weight)] + + MD5<-MD[ProvinceCode!=11] + MD5<-MD5[,Group:=ifelse(FinalPoor==0 & FinalFoodPoor==0,"NoPoor", + ifelse(FinalPoor==1 & FinalFoodPoor==0,"OnlyFinalPoor", + ifelse(FinalPoor==0 & FinalFoodPoor==1,"OnlyFoodPoor","Both")))] + a<-ggplot(MD5,aes(x=HHEngle, fill=factor(Group))) + + geom_density(alpha=0.25)+ + xlim(0,1)+ylim(0,5)+ + ggtitle(year) + plot(a) + + + + MDD<-MD[,.(Population=sum(Weight*Size)), by=.(Decile,ProvinceName)][order(ProvinceName,Decile)] + ggplot(MDD, aes(fill=factor(Decile), y=Population, x=ProvinceName)) + + geom_bar(position="fill", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + + Decile1<-MD[as.numeric(Decile)<2,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile1Poors<-Decile1[,.(Decile1Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile1Poors, aes( y=Decile1Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + Decile2<-MD[as.numeric(Decile)<3,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile2Poors<-Decile2[,.(Decile2Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile2Poors, aes( y=Decile2Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + Decile5<-MD[as.numeric(Decile)>3,.(HHID,Region,ProvinceName,NewArea_Name,Weight,FinalFoodPoor,FinalPoor,Durable_Exp)] + Decile5Poors<-Decile5[,.(Decile5Poors=weighted.mean(FinalPoor,Weight)),by=c("ProvinceName")][order(ProvinceName)] + ggplot(Decile5Poors, aes( y=Decile5Poors, x=ProvinceName)) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + + + MD[,weighted.mean(FinalPoor,Weight),by=ProvinceCode][order(ProvinceCode)] +} + +MD[,sum(Weight),by=Decile][order(Decile)] +MD[,sum(Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,sum(Weight)] +MD[,sum(Weight*Size)] + +MD<-MD[,Total:=OriginalFoodExpenditure+Cigar_Exp+Cloth_Exp+ + HouseandEnergy_Exp+Furniture_Exp+Hygiene_Exp+ + Transportation_Exp+Communication_Exp+Communication_Exp+ + Amusement_Exp+Education_Exp+HotelRestaurant_Exp+ + Other_Exp+Durable_Exp] +m<-MD[,.(Total,Total_Exp_Month)] + +Share<-MD[,.(Foodshare=weighted.mean(OriginalFoodExpenditure/Total,Weight), + CigarShare=weighted.mean(Cigar_Exp/Total,Weight), + ClothShare=weighted.mean(Cloth_Exp/Total,Weight), + HouseandEnergyShare=weighted.mean(HouseandEnergy_Exp/Total,Weight), + FurnitureShare=weighted.mean(Furniture_Exp/Total,Weight), + HygieneShare=weighted.mean(Hygiene_Exp/Total,Weight), + TransportationShare=weighted.mean(Transportation_Exp/Total,Weight), + CommunicationShare=weighted.mean(Communication_Exp/Total,Weight), + AmusementShare=weighted.mean(Amusement_Exp/Total,Weight), + EducationShare=weighted.mean(Education_Exp/Total,Weight), + HotelShare=weighted.mean(HotelRestaurant_Exp/Total,Weight), + OtherShare=weighted.mean(Other_Exp/Total,Weight), + DurableShare=weighted.mean(Durable_Exp/Total,Weight)),by=Decile] + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/WCPD Price Index.R b/R/Archive/June 2020 (removed code files)/WCPD Price Index.R new file mode 100644 index 00000000..7877fd5f --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/WCPD Price Index.R @@ -0,0 +1,158 @@ +# WCPD Price Index +# +# Zahra Shahidi +# 2020 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +#library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region, + ServiceExp,FoodExpenditure,Total_Exp_Month,ProvinceName, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE)),by=.(ProvinceName)] + X[,V:=V1+V2] + VT<-X[NewArea_Name=="Sh_Tehran"] + V1T<-VT$V1 + V2T<-VT$V2 + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=((exp((V1+V1T)/2))*(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1))* + ((exp((V2+V2T)/2))*(weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)) ,by=.(Region,NewArea_Name)] + SMD<-SMD[NewArea_Name=="Sh_Tehran",PriceIndex:=1] + + Compare<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + C<-SMD[,.(.N,Max=max(Total_Exp_Month_Per_nondurable), + Min=min(Total_Exp_Month_Per_nondurable), + Mean=mean(Total_Exp_Month_Per_nondurable)), + by=.(Region,NewArea,NewArea_Name,Decile)] + + + + # FirstSMD<-SMD[,.(HHID,Region,NewArea_Name,NewArea_Name,Percentile,Decile)] + # FirstSMD<-FirstSMD[,Realfirstpoor:=ifelse(Decile %in% 1:2,1,0)] + # save(FirstSMD, file=paste0(Settings$HEISProcessedPath,"Y",year,"FirstSMD.rda")) + + + + B<-MD[,.(.N,Mean=mean(MetrPrice)), + by=.(Region,NewArea_Name)] + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + # Index2 <- SMDIterationPoor[,.(PriceIndex= (weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1+ + # weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2)/2) + # ,by=.(Region,NewArea_Name)] + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + VT<-X[NewArea_Name=="Sh_Tehran"] + V1T<-VT$V1 + V2T<-VT$V2 + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(exp((V1+V1T)/2)*(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1))* + (exp((V2+V2T)/2)*(weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2))) ,by=.(Region,NewArea_Name)] + Index<-SMD[NewArea_Name=="Sh_Tehran",PriceIndex:=1] + + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + } + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight,na.rm = TRUE), by=.(NewArea_Name,Region)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/WPCD Price Index 2.R b/R/Archive/June 2020 (removed code files)/WPCD Price Index 2.R new file mode 100644 index 00000000..1d61a125 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/WPCD Price Index 2.R @@ -0,0 +1,168 @@ +# WCPD Price Index 2 +# +# Zahra Shahidi +# 2020 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +#library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region, + ServiceExp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD)] + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex2:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea_Name)] + + X <- SMD[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + X[,V:=V1+V2] + VT<-X[NewArea_Name=="Sh_Tehran"] + V1T<-VT$V1 + V2T<-VT$V2 + SMD <- merge(SMD,X,by=c("Region","NewArea_Name")) + + SMD[,PriceIndex:=((exp((V1+V1T)/2))*(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1))* + ((exp((V2+V2T)/2))*(weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)) ,by=.(Region,NewArea_Name)] + + SMD<-SMD[NewArea_Name=="Sh_Tehran",PriceIndex:=1] + + Compare<-SMD[,.(Old=mean(PriceIndex2), + New=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + SMD[,V1:=NULL] + SMD[,V2:=NULL] + SMD[,V:=NULL] + + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(NewArea_Name,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=NewArea_Name] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=NewArea_Name] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=NewArea_Name] + + C<-SMD[,.(.N,Max=max(Total_Exp_Month_Per_nondurable), + Min=min(Total_Exp_Month_Per_nondurable), + Mean=mean(Total_Exp_Month_Per_nondurable)), + by=.(Region,NewArea,NewArea_Name,Decile)] + + + + # FirstSMD<-SMD[,.(HHID,Region,NewArea_Name,NewArea_Name,Percentile,Decile)] + # FirstSMD<-FirstSMD[,Realfirstpoor:=ifelse(Decile %in% 1:2,1,0)] + # save(FirstSMD, file=paste0(Settings$HEISProcessedPath,"Y",year,"FirstSMD.rda")) + + + + B<-MD[,.(.N,Mean=mean(MetrPrice)), + by=.(Region,NewArea_Name)] + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=0.002*nrow(SMD) & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + # Index2 <- SMDIterationPoor[,.(PriceIndex= (weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1+ + # weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2)/2) + # ,by=.(Region,NewArea_Name)] + + X <- SMDIterationPoor[,.(weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + weighted.mean(ServiceExp/Total_Exp_Month,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,V:=V1+V2] + VT<-X[NewArea_Name=="Sh_Tehran"] + V1T<-VT$V1 + V2T<-VT$V2 + SMDIterationPoor <- merge(SMDIterationPoor,X,by=c("Region","NewArea_Name")) + SMDIterationPoor[,PriceIndex:=NULL] + + Index <- SMDIterationPoor[,.(PriceIndex=(exp((V1+V1T)/2)*(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1))* + (exp((V2+V2T)/2)*(weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2))) ,by=.(Region,NewArea_Name)] + Index<-Index[NewArea_Name=="Sh_Tehran",PriceIndex:=1] + + Index <- Index[,.(PriceIndex=mean(PriceIndex)),by=.(Region,NewArea_Name)] + + + SMD[,PriceIndex:=NULL] + SMD <- merge(SMD,Index,by=c("Region","NewArea_Name")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(NewArea_Name,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=NewArea_Name] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=NewArea_Name] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=NewArea_Name] + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + } + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + + MD[,weighted.mean(InitialPoor,Weight,na.rm = TRUE), by=.(NewArea_Name,Region)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + # load( file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + + + #write.csv(A,file = "A.csv") + #write.csv(B,file = "B.csv") + #write.csv(C,file = "C.csv") + #write.csv(D,file = "D.csv") +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/Yarane report-Refah.R b/R/Archive/June 2020 (removed code files)/Yarane report-Refah.R new file mode 100644 index 00000000..b7554f47 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/Yarane report-Refah.R @@ -0,0 +1,107 @@ +#Yarane report-Refah +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +library(tidyverse) + +year<-97 + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +MD[,Decile:=NULL] +MD[,Percentile:=NULL] +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"AidWage.rda")) + +MD<-merge(MD,Deciles,all.x = TRUE) +MD<-merge(MD,AidWageData,all.x = TRUE) +for (col in c("aid")) MD[is.na(get(col)), (col) := 0] +MD[,PositiveAid:=ifelse(aid>0,1,0)] +MD[,weighted.mean(PositiveAid,Weight*Size),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(PositiveAid,Weight*Size),by=.(Decile)][order(Decile)] + + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) +MD<-merge(MD,SubsidyWageData,all.x = TRUE,by="HHID") +for (col in c("Subsidy")) MD[is.na(get(col)), (col) := 0] +MD[,PositiveSubsidy:=ifelse(Subsidy>0,1,0)] +MD[,weighted.mean(PositiveSubsidy,Weight*Size),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(PositiveSubsidy,Weight*Size),by=.(Decile)][order(Decile)] + + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"UTSubsidyW.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"RTSubsidyW.rda")) + +#TSubsidy<-rbind(UTSubsidyW,RTSubsidyW) +#TSubsidy<-TSubsidy[,HHID:=Address] +#MD<-merge(MD,TSubsidy[,.(HHID,check1)],all.x = TRUE,by="HHID") +#MD[,Subsidy3:=ifelse(check1>800000,1,0)] +#y<-MD[Subsidy3==1,.(HHID,Decile,Region)] +#MD[,weighted.mean(Subsidy3,Weight*Size,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +#MD[,weighted.mean(Subsidy3,Weight*Size,na.rm = TRUE),by=.(Decile)][order(Decile)] + +MD[,TotalAid:=(Subsidy+aid)/12] +MD_Ok<- MD[TotalAid>0] +MD_Ok[,ratio:=TotalAid/Total_Exp_Month] +MD_Ok[,.(.N,weighted.mean(ratio,Weight*Size,na.rm = TRUE)),by=.(Region,Decile)][order(Region,Decile)] +MD_Ok[,.(weighted.mean(ratio,Weight*Size,na.rm = TRUE)),by=.(Decile)][order(Decile)] +MD_Ok[,.(.N,weighted.mean(Total_Exp_Month,Weight*Size,na.rm = TRUE)),by=.(Region,Decile)][order(Region,Decile)] +MD_Ok[,.(weighted.mean(Total_Exp_Month,Weight*Size,na.rm = TRUE)),by=.(Decile)][order(Decile)] +MD_Ok[,.(.N,weighted.mean(Total_Exp_Month/EqSizeOECD,Weight*Size,na.rm = TRUE)),by=.(Region,Decile)][order(Region,Decile)] +MD_Ok[,.(weighted.mean(Total_Exp_Month/EqSizeOECD,Weight*Size,na.rm = TRUE)),by=.(Decile)][order(Decile)] + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"BreadExp.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"BreadCon.rda")) +MD<-merge(MD,BreadData,by="HHID") +MD<-merge(MD,BreadConsumption,by="HHID") + +MD[is.na(MD)] <- 0 + +MD[,weighted.mean(G01114+G01115,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(G01114+G01115,Weight),by=.(Decile)][order(Decile)] + +MD[,weighted.mean(Size,Weight),by=.(Decile)][order(Decile)] +MD[,weighted.mean(Size,Weight),by=.(Region,Decile)][order(Region,Decile)] + +MD[,weighted.mean(BreadGrams,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(BreadGrams,Weight),by=.(Decile)][order(Decile)] + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"DrugsExp.rda")) +MD<-merge(MD,DrugsExp,all.x = TRUE) +MD[is.na(MD)] <- 0 + +MD[,weighted.mean(DrugsExp,Weight),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(DrugsExp,Weight),by=.(Decile)][order(Decile)] + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) +TotalFoodExp<-merge(TotalFoodExp,MD[,.(HHID,Decile)]) + +TotalFoodExp[,weighted.mean(`011211`+`011212`+`011213`+ + `011214`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011117`+`011118`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011231`+`011232`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011411`+`011412`+`011413`+`011414`+ + `011421`+`011422`+`011423`+`011424`+ + `011425`+`011426`+`011427`+`011428`+ + `011429`+`011431`+`011432`+`011433`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011441`+`011442`+`011443`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011531`+`011532`+`011533`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011812`,Weight),by=.(Decile)][order(Decile)] diff --git a/R/Archive/June 2020 (removed code files)/bundle 2100 country.R b/R/Archive/June 2020 (removed code files)/bundle 2100 country.R new file mode 100644 index 00000000..94f7a910 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/bundle 2100 country.R @@ -0,0 +1,106 @@ +# 703-Bundle 2100 +# Builds the Food Groups data.table for households +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +library(spatstat) + +cat("\n\n================ FoodGroups =====================================\n") +year<-97 +cat(paste0("\n------------------------------\nYear:",year,"\n")) +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) +MetaData <- read_excel("C:/IRHEIS/Data/MetaData.xlsx", sheet = "FoodGroupTables") +MetaData<-as.data.table(MetaData) +MetaData<-MetaData[,SheetName:=NULL] +FoodNames<-MetaData +save(FoodNames,file ="FoodNames.rda" ) +load(file = "FoodNames.rda") + +Base2<-merge(BigFData,FData,by="HHID") + +Base2<-merge(Base2,MD[,.(HHID,NewArea,NewArea_Name,ProvinceCode,cluster3,Decile, + FinalFoodPoor,FinalPoor,Weight,EqSizeOECD,EqSizeCalory)],by="HHID") + +Base<-Base2 +#Base<-Base2[FinalFoodPoor==1] +Base<-Base[,FGrams_Per:=FGrams/EqSizeCalory] +Base<-Base[,FoodKCalories_Per:=FoodKCaloriesHH/EqSizeCalory] +Base<-Base[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] +Base<-Base[,Coef:=FoodKCalories_Per/Settings$KCaloryNeed_Adult] + +Base<-Base[,FoodKCalories_PerNew:=FoodKCalories_Per/Coef] +Base<-Base[,FGrams_PerNew:=FGrams_Per/Coef] +BaseX <- Base[,.(FoodKCalories2=mean(FoodKCalories_PerNew), + FoodKCalories3=mean(FoodKCalories_Per), + FoodProtein2=mean(FoodProtein_Per), + Weight=mean(Weight), + ProvinceCode=mean(ProvinceCode)),by=HHID] + +# BaseX1<-Base[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight), +# cluster3=mean(cluster3)), +# by=.(ProvinceCode,FoodType)] + +BaseX1<-Base[,.(.N,Average_Consumption=weighted.mean(FGrams_PerNew,Weight), + cluster3=mean(cluster3)), + by=.(FoodType)] + +BaseX1<-BaseX1[,N2:=max(N)] +BaseX1<-BaseX1[,Average_New:=N*Average_Consumption/N2] +BaseM<-BaseX1[,.(N,N2,FoodType,Average_New)] +BaseM2<-BaseM[FoodType=="Berenj"] +BaseM<-BaseM[,.(FoodType,N,Average_New)] +BaseM<-merge(BaseM,FoodNames) +BaseM<-BaseM[,Average_Protein:=Average_New*Protein] +BaseM<-BaseM[order(FoodType)] +write.csv(BaseM,file="BaseM.csv") + +BaseP<-BaseM[,.(Total_Protein=sum(Average_Protein)), + by=.(ProvinceCode)] + +BaseX<-BaseX[,Region:=as.integer(str_sub(HHID,1,1))] +BaseX[,weighted.mean(FoodProtein2,Weight)] +BaseX[,weighted.mean(FoodProtein2,Weight),by=.(Region,ProvinceCode)] + + +BaseXUrban<-BaseX[Region==1] +BaseXRural<-BaseX[Region==2] +plot(FoodKCalories3~FoodProtein2,data=BaseXUrban) +BaseXRural<-BaseXRural[FoodProtein2<700] + +smoothScatter(BaseXRural$FoodKCalories3~BaseXRural$FoodProtein2) + +#Base2<-Base[FinalPoor==0,.(.N,Average_Consumption=weighted.mean(FGrams_Per,Weight), +# cluster3=mean(cluster3)),by=.(ProvinceCode,FoodType)] + +# Base3<-MD[PEngel>0.6 & FinalPoor==1] + +# Base4<-MD[FinalPoor==0,.(.N,cluster3=mean(cluster3)),by=.(ProvinceCode)] + +# Base[FoodType=="Goosht" & FinalPoor==1 ,weighted.mean(FGrams_Per,Weight,na.rm = TRUE),by=.(ProvinceCode)] + +Base3<-Base2[FinalPoor==1] +Base3<-Base3[,FGrams_Per:=FGrams/EqSizeCalory] +Base3<-Base3[,FoodKCalories_Per:=FoodKCaloriesHH/EqSizeCalory] +BaseX3<-Base3[,.(.N,Average_Consumption=weighted.mean(FGrams_Per,Weight), + cluster3=mean(cluster3)), + by=.(ProvinceCode,FoodType)] +BaseX3<-BaseX3[,N2:=max(N),by=.(ProvinceCode)] +BaseX3<-BaseX3[,Average_New:=N*Average_Consumption/N2] +BaseM3<-BaseX3[,.(ProvinceCode,N,N2,FoodType,Average_New)] +BaseM3<-BaseM3[order(ProvinceCode,FoodType)] +write.csv(BaseM3,file="BaseM3.csv") + +cat("\n\n==============Finish==============\nIt took ") +endtime <- proc.time() +cat((endtime-starttime)[3],"seconds.") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/durablelast.R b/R/Archive/June 2020 (removed code files)/durablelast.R new file mode 100644 index 00000000..61d3a8ec --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/durablelast.R @@ -0,0 +1,170 @@ +# 401-Mereg all data.R +# 2019: Arin Shahbazian + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Mereg all data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) +library(janitor) +library(dplyr) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + + + for(G in c("Durables","ClothDurables","ProtectHouseDurables", + "FurnitureDurables","HouseDurableInstruments", + "UtensilDurables","GardenInstruDurables", + "HouseCommodityServDurables","MedicalInstruDurables", + "MedicalStandingDurables","HospitalDurables", + "BuyingAutoDurables","TransportInstruDurables", + "VisualEquipDurables","OtherinstruDurables", + "BookNewspaperDurables","TravelDurables", + "PrimaryDurables","HighschoolDurables", + "PreDurables","UniDurables", + "OtherEduDurables","PersonalOtherDurables", + "SocialProtDurables","InsuranceDurables", + "OtherfinancialDurables","OtherserviceDurables", + "TransitionsDurables","ClothDurable_WomanExp","ClothDurable_WomanExp2", + "ClothDurable_OtherExp","ClothDurable_OtherExp2", + "ClothDurable_RepairExp","ClothDurable_RepairExp2", + "HouseRepairMaterialsExp","HouseRepairMaterialsExp2", + "HouseRepairServicesExp","HouseRepairServicesExp2", + "FurnitureCarpetDurableData", + "OtherFurnitureExp","OtherFurnitureExp2","FurnituregoodsExp","FurnituregoodsExp2", + "CarpetsExp","CarpetsExp2","Repair_FurnitureExp","Repair_FurnitureExp2", + "MainEquipmentsExp","MainEquipmentsExp2","MinorEquipmentsExp","MinorEquipmentsExp2", + "RepairRentEquipmentsExp","RepairRentEquipmentsExp2", + "FoodOtherUtensilExp","FoodOtherUtensilExp2","DurableEquipmentsExp","DurableEquipmentsExp2", + "HouseServicesRentExp","HouseServicesRentExp2","MedicalDurableData", + "MedicalDurableEquipmentsExp","MedicalDurableEquipmentsExp2","MedicalDurableEquipmentsExp3", + "MedicalDurableServicesExp","MedicalDurableServicesExp2","MedicalDurableServicesExp3", + "HospitalServicesExp","HospitalServicesExp2","HospitalServicesExp3","TransportationDurableData", + "BuyingAutoDurables","TransportInstruDurables", + "BuyingAutomobileExp","BuyingAutomobileExp2","BuyingMotorExp","BuyingMotorExp2", + "BuyingBicycleExp","BuyingBicycleExp2", + "AccessoryExp","AccessoryExp2","CarRepairServiceExp","CarRepairServiceExp2", + "OtherCar_DurableServicesExp","OtherCar_DurableServicesExp2", + "TelDurableEquipExp","TelDurableEquipExp2","TelDurableEquipExp3","TelDurableEquipExp4", + "VisualEquipDurables","OtherinstruDurables","OtherAmusingDurables", + "BookNewspaperDurables","BookNewspaperDurables2","TravelDurables","AcousticProjective_EquipExp", + "AcousticProjective_EquipExp2","CameraDurableEquipExp","CameraDurableEquipExp2", + "PCetcExp","PCetcExp2","RepairAcousticProjectiveExp","RepairAcousticProjectiveExp2", + "OtherAmusingDurableExp","OtherAmusingDurableExp2", + "MusicEquipDurableExp","MusicEquipDurableExp2", + "RepairAmusingDurableExp","RepairAmusingDurableExp2","GamesToysExp3", + "GamesToysExp","GamesToysExp2","SportsEquipExp","SportsEquipExp2", + "PlantsGardenExp","PlantsGardenExp2","PetsExp","PetsExp2", + "Books_curriculumExp","Books_curriculumExp2", + "Books_NoncurriculumExp","Books_NoncurriculumExp2", + "TravelsExp","TravelsExp2","TravelsExp3","TravelsExp4","EducationData", + "PrimaryschoolRegExp","PrimaryschoolRegExp2", + "HighschoolRegExp","HighschoolRegExp2", + "PreUniversityRegExp","PreUniversityRegExp2", + "UniversityRegExp","UniversityRegExp2", + "OtherClassRegExp","OtherClassRegExp2","OtherDurableData", + "JewelryandWatchExp","JewelryandWatchExp2","BurialExp","BurialExp2", + "Social_ProtectsExp","Social_ProtectsExp2","Premium_NonMedicalExp","Premium_NonMedicalExp2", + "Premium_HouseExp","Premium_HouseExp2","Premium_MedicalExp","Premium_MedicalExp2", + "Premium_TransportationExp","Premium_TransportationExp2", + "Premium_OtherExp","Premium_OtherExp2","Financial_MediatorExp","Financial_MediatorExp2", + "Financial_OtherExp","Financial_OtherExp2","Other_Nonsorted_ServicesExp", + "Other_Nonsorted_ServicesExp2","ReligiousExp","ReligiousExp2", + "Damage_AtonementExp","Damage_AtonementExp2","Durable12","Durable13","Durable11", + "Durable011","Durable012","Durable013", + "Durable021","Durable022", + "Durable31","Durable32","Durable33","Durable34","Durable41", + "Durable42","Durable43","Durable51","Durable52","Durable53", + "Durable61","Durable62","Durable7","Durable81","Durable82","Durable83", + "Durable9","Durable101","Durable102","Durable121","Durable122","Durable123", + "Durable131","Durable132","Durable141","Durable142", + "Durable151","Durable152","Durable153","Durable154","Durable161", + "Durable162","Durable163","Durable17","Durable18", + "Durable19","Durable20","Durable21","Durable22","Durable231","Durable232", + "Durable241","Durable242","Durable243","Durable251","Durable252", + "Durable261","Durable262","Durable27","Durable281","Durable282")){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + } + + HHBase<-HHBase[,.(HHID)] + + TotalDurable<-merge(HHBase,DurableData,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable011,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable012,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable013,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable021,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable022,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable31,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable32,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable33,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable34,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable41,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable42,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable43,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable51,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable52,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable53,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable61,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable62,all.x=TRUE, allow.cartesian=TRUE) + TotalDurable<-merge(TotalDurable,Durable7,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable81,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable82,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable83,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable9,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable101,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable102,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable11,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable121,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable122,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable123,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable131,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable132,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable141,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable142,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable151,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable152,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable153,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable154,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable161,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable162,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable163,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable17,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable18,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable19,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable20,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable21,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable22,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable231,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable232,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable241,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable242,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable243,all.x=TRUE,allow.cartesian=TRUE) + TotalDurable<-merge(TotalDurable,Durable251,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable252,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable261,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable262,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable27,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable281,all.x=TRUE) + TotalDurable<-merge(TotalDurable,Durable282,all.x=TRUE) + + + TotalDurable[is.na(TotalDurable)] <- 0 + TotalDurable<-distinct(TotalDurable,HHID,.keep_all= TRUE) + + names(TotalDurable) + + save(TotalDurable, file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalDurable.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/job.R b/R/Archive/June 2020 (removed code files)/job.R new file mode 100644 index 00000000..dca9aea7 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/job.R @@ -0,0 +1,49 @@ +# 403-Filtering job status.R +# 2019: Arin Shahbazian + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================Filtering job status =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total1.rda")) + + + job<-Total[,.(HHID,Region,HActivityState,Main_Job_Name_Pub,PubWageNetIncomeY, + Main_Job_Name_Prv,PrvWageNetIncomeY, + Main_Job_Name_Cooperative,CooperativeWageNetIncomeY, + AgriEarners,Main_Job_Name_Agri,BussEarners, + Main_Job_Name_Buss, + Job_Main_Code_Pub,Job_Main_Code_Prv,Job_Main_Code_Cooperative, + Job_Main_Code_Buss,Job_Main_Code_Agri, + Original_Job_Name_Cooperative,CooperativeWageNetIncomeY, + AgriEarners,Original_Job_Name_Agri,BussEarners, + Original_Job_Name_Buss, + Job_Original_Code_Pub,Job_Original_Code_Prv,Job_Original_Code_Cooperative, + Job_Original_Code_Buss,Job_Original_Code_Agri, + Aid,Homemade, + Interest,Intra,Rent,Retirement,Subsidy)] + + job<-job[,job_Best:=min(Job_Main_Code_Pub,Job_Main_Code_Prv, + Job_Main_Code_Cooperative, + Job_Main_Code_Buss,Job_Main_Code_Agri)] + + + save(job,file=paste0(Settings$HEISProcessedPath,"Y",year,"job.rda")) + + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/June 2020 (removed code files)/modify2.R b/R/Archive/June 2020 (removed code files)/modify2.R new file mode 100644 index 00000000..554fdb54 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/modify2.R @@ -0,0 +1,549 @@ +library(yaml) +OS <- ifelse(version$os=="linux-gnu","Linux","Windows") +if(OS=="Linux"){ + HEISPath = "/media/majid/Document/HEIS/" +}else{ + HEISPath = "C:/HEIS/" +} +HEISCompressedPath = paste0(HEISPath,"DataCompressed/") +HEISAccessPath = paste0(HEISPath,"DataAccess/") +HEISRawPath = paste0(HEISPath,"DataRaw/") +HEISProcessedPath = paste0(HEISPath,"DataProcessed/") +HEISResultsPath = paste0(HEISPath,"DataResults/") +D80LinkDest = paste0(HEISAccessPath,"D80Link.accdb") + + +Settings <- list(HEISPath =HEISPath, + HEISCompressedPath=HEISCompressedPath, + HEISAccessPath =HEISAccessPath, + HEISRawPath =HEISRawPath, + HEISProcessedPath =HEISProcessedPath, + HEISResultsPath =HEISResultsPath, + HEISWeightsPath ="../Data/SamplingWeights/", + HEISWeightFileName="HHWeights", + HEISCountyCodePath="../Data/CountyCodes8791/", + HEISCountyCodeFileName="ShCode", + startyear=77, + endyear=97, + baseyear=95, + OS=OS, + # RawDataWebAddress ="http://www.amar.org.ir/Portals/0/amarmozuii/hazinedaramad/", + RawDataWebAddress ="https://www.amar.org.ir/Portals/0/amarmozuii/re_DataRaw_63_95_Info/", + MetaDataFilePath = "../Data/MetaData.xlsx", + GeoInfoFilePath = "../Data/GeoInfo.Shahrestan.xlsx", + MDS_CFN = "CompressedFileNames", # MetaData Sheet: Compressed File Names + MDS_P1Cols = "P1Cols", # MetaData Sheet: Columns of P1 Table + MDS_P2Cols = "P2Cols", + MDS_EC_A = "EduCodes-A", + MDS_EC_B = "EduCodes-B", + MDS_EC_C = "EduCodes-C", + MDS_EC_D = "EduCodes-D", + MDS_Food = "FoodTables", + MDS_Sheep = "SheepTables", + MDS_Cow = "CowTables", + MDS_Shir = "ShirTables", + MDS_Mast = "MastTables", + MDS_Panir = "PanirTables", + MDS_Morgh = "MorghTables", + MDS_BerenjI = "BerenjITables", + MDS_BerenjF = "BerenjFTables", + MDS_Roghan = "RoghanTables", + MDS_Tokhmemorgh = "TokhmemorghTables", + MDS_Ghand = "GhandTables", + MDS_Shekar = "ShekarTables", + MDS_Nokhod = "NokhodTables", + MDS_Lapeh = "LapehTables", + MDS_Loobia_Chiti = "Loobia_ChitiTables", + MDS_Loobia_Ghermez= "Loobia_GhermezTables", + MDS_Adas = "AdasTables", + MDS_FoodGroups = "FoodGroupTables", + MDS_Cigar = "CigarTables", + MDS_Cloth = "ClothTables", + MDS_HouseandEnergy = "HouseandEnergyTables", + MDS_Energy = "EnergyTables", + MDS_Furniture = "FurnitureTables", + MDS_Transportation= "TransportationTables", + MDS_Benzin = "BenzinTables", + MDS_Bargh = "BarghTables", + MDS_Gaz = "GazTables", + MDS_NaftSefid = "NaftSefidTables", + MDS_Communication = "CommunicationTables", + MDS_Amusement = "AmusementTables", + MDS_HotelRestaurant = "HotelRestaurantTables", + MDS_Other = "OtherTables", + MDS_Durable = "DurableTables", + MDS_Investment = "InvestmentTables", + MDS_Medical = "MedicalTables", + MDS_Hygiene = "HygieneTables", + MDS_Loans = "LoanTables", + MDS_House = "HouseTables", + MDS_Education = "EducationTables", + MDS_Insurance = "InsuranceTables", + MDS_ActivityState = "ActivityStateTables", + MDS_PubWage = "PubWageTable", + MDS_PrvWage = "PrvWageTable", + MDS_AgriInc = "AgriIncTable", + MDS_BussInc = "BussIncTable", + MDS_OtherInc = "OthrIncTable", + MDS_Retirement = "RetirementTables", + MDS_Interest = "InterestTables", + MDS_Rent = "RentTables", + MDS_Aid = "AidTables", + MDS_Homemade = "HomemadeTables", + MDS_Intra = "IntraTables", + MDS_SubsidyWage = "SubsidyTable", + MDS_Rough_Weights = "RegionWeights", + OutFoodKCXShare = 0.3, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare12 = 0.4, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare3456 = 0.2, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare78910 = 0.1, # Share of Kilo-Calory content in Expenses of outdoor food + KCaloryNeed_Adult = 2100, + KCaloryNeed_Adult_WorldBank = 2100, + KCaloryNeed_Adult_Anstitoo = 2400, + KCaloryNeed_Child = 1800, + KCaloryNeed_B0 = 850 , + KCaloryNeed_B1 = 1250 , + KCaloryNeed_B2 = 1356 , + KCaloryNeed_B3 = 1582 , + KCaloryNeed_B4 = 1728 , + KCaloryNeed_B5 = 1838 , + KCaloryNeed_B6 = 1922 , + KCaloryNeed_B7 = 1980 , + KCaloryNeed_B8 = 2058 , + KCaloryNeed_B9 = 2136 , + KCaloryNeed_B10 = 2214 , + KCaloryNeed_B11 = 2292 , + KCaloryNeed_B12 = 2370 , + KCaloryNeed_B13 = 2436 , + KCaloryNeed_B14 = 2502 , + KCaloryNeed_B15 = 2568 , + KCaloryNeed_B16 = 2634 , + KCaloryNeed_B17 = 2700 , + KCaloryNeed_B18 = 2652 , + KCaloryNeed_B19 = 2604 , + KCaloryNeed_B20 = 2556 , + KCaloryNeed_B21 = 2508 , + KCaloryNeed_B22 = 2460 , + KCaloryNeed_B23 = 2460 , + KCaloryNeed_B24 = 2460 , + KCaloryNeed_B25 = 2460 , + KCaloryNeed_B26 = 2460 , + KCaloryNeed_B27 = 2460 , + KCaloryNeed_B28 = 2460 , + KCaloryNeed_B29 = 2460 , + KCaloryNeed_B30 = 2460 , + KCaloryNeed_B31 = 2460 , + KCaloryNeed_B32 = 2460 , + KCaloryNeed_B33 = 2460 , + KCaloryNeed_B34 = 2460 , + KCaloryNeed_B35 = 2460 , + KCaloryNeed_B36 = 2460 , + KCaloryNeed_B37 = 2460 , + KCaloryNeed_B38 = 2460 , + KCaloryNeed_B39 = 2460 , + KCaloryNeed_B40 = 2460 , + KCaloryNeed_B41 = 2460 , + KCaloryNeed_B42 = 2460 , + KCaloryNeed_B43 = 2460 , + KCaloryNeed_B44 = 2460 , + KCaloryNeed_B45 = 2460 , + KCaloryNeed_B46 = 2460 , + KCaloryNeed_B47 = 2460 , + KCaloryNeed_B48 = 2460 , + KCaloryNeed_B49 = 2460 , + KCaloryNeed_B50 = 2460 , + KCaloryNeed_B51 = 2460 , + KCaloryNeed_B52 = 2460 , + KCaloryNeed_B53 = 2460 , + KCaloryNeed_B54 = 2460 , + KCaloryNeed_B55 = 2460 , + KCaloryNeed_B56 = 2460 , + KCaloryNeed_B57 = 2460 , + KCaloryNeed_B58 = 2370 , + KCaloryNeed_B59 = 2280 , + KCaloryNeed_B60 = 2190 , + KCaloryNeed_B61 = 2100 , + KCaloryNeed_B62 = 2010 , + KCaloryNeed_B63 = 2010 , + KCaloryNeed_B64 = 2010 , + KCaloryNeed_B65 = 2010 , + KCaloryNeed_B66 = 2010 , + KCaloryNeed_B67 = 2010 , + KCaloryNeed_B68 = 2010 , + KCaloryNeed_B69 = 2010 , + KCaloryNeed_B70 = 2010 , + KCaloryNeed_B71 = 2010 , + KCaloryNeed_B72 = 2010 , + KCaloryNeed_B73 = 2010 , + KCaloryNeed_B74 = 2010 , + KCaloryNeed_B75 = 2010 , + KCaloryNeed_B76 = 2010 , + KCaloryNeed_B77 = 2010 , + KCaloryNeed_B78 = 2010 , + KCaloryNeed_B79 = 2010 , + KCaloryNeed_B80 = 2010 , + KCaloryNeed_B81 = 2010 , + KCaloryNeed_B82 = 2010 , + KCaloryNeed_B83 = 2010 , + KCaloryNeed_B84 = 2010 , + KCaloryNeed_B85 = 2010 , + KCaloryNeed_B86 = 2010 , + KCaloryNeed_B87 = 2010 , + KCaloryNeed_B88 = 2010 , + KCaloryNeed_B89 = 2010 , + KCaloryNeed_B90 = 2010 , + KCaloryNeed_B91 = 2010 , + KCaloryNeed_B92 = 2010 , + KCaloryNeed_B93 = 2010 , + KCaloryNeed_B94 = 2010 , + KCaloryNeed_B95 = 2010 , + KCaloryNeed_B96 = 2010 , + KCaloryNeed_B97 = 2010 , + KCaloryNeed_B98 = 2010 , + KCaloryNeed_B99 = 2010 , + KCaloryNeed_G0 = 780 , + KCaloryNeed_G1 = 1190 , + KCaloryNeed_G2 = 1256 , + KCaloryNeed_G3 = 1446 , + KCaloryNeed_G4 = 1554 , + KCaloryNeed_G5 = 1634 , + KCaloryNeed_G6 = 1692 , + KCaloryNeed_G7 = 1730 , + KCaloryNeed_G8 = 1792 , + KCaloryNeed_G9 = 1854 , + KCaloryNeed_G10 = 1916 , + KCaloryNeed_G11 = 1978 , + KCaloryNeed_G12 = 2040 , + KCaloryNeed_G13 = 2056 , + KCaloryNeed_G14 = 2072 , + KCaloryNeed_G15 = 2088 , + KCaloryNeed_G16 = 2104 , + KCaloryNeed_G17 = 2120 , + KCaloryNeed_G18 = 2094 , + KCaloryNeed_G19 = 2068 , + KCaloryNeed_G20 = 2042 , + KCaloryNeed_G21 = 2016 , + KCaloryNeed_G22 = 1990 , + KCaloryNeed_G23 = 1990 , + KCaloryNeed_G24 = 1990 , + KCaloryNeed_G25 = 1990 , + KCaloryNeed_G26 = 1990 , + KCaloryNeed_G27 = 1990 , + KCaloryNeed_G28 = 1990 , + KCaloryNeed_G29 = 1990 , + KCaloryNeed_G30 = 1990 , + KCaloryNeed_G31 = 1990 , + KCaloryNeed_G32 = 1990 , + KCaloryNeed_G33 = 1990 , + KCaloryNeed_G34 = 1990 , + KCaloryNeed_G35 = 1990 , + KCaloryNeed_G36 = 1990 , + KCaloryNeed_G37 = 1990 , + KCaloryNeed_G38 = 1990 , + KCaloryNeed_G39 = 1990 , + KCaloryNeed_G40 = 1990 , + KCaloryNeed_G41 = 1990 , + KCaloryNeed_G42 = 1990 , + KCaloryNeed_G43 = 1990 , + KCaloryNeed_G44 = 1990 , + KCaloryNeed_G45 = 1990 , + KCaloryNeed_G46 = 1990 , + KCaloryNeed_G47 = 1990 , + KCaloryNeed_G48 = 1990 , + KCaloryNeed_G49 = 1990 , + KCaloryNeed_G50 = 1990 , + KCaloryNeed_G51 = 1990 , + KCaloryNeed_G52 = 1990 , + KCaloryNeed_G53 = 1990 , + KCaloryNeed_G54 = 1990 , + KCaloryNeed_G55 = 1990 , + KCaloryNeed_G56 = 1990 , + KCaloryNeed_G57 = 1990 , + KCaloryNeed_G58 = 1948 , + KCaloryNeed_G59 = 1906 , + KCaloryNeed_G60 = 1864 , + KCaloryNeed_G61 = 1822 , + KCaloryNeed_G62 = 1780 , + KCaloryNeed_G63 = 1780 , + KCaloryNeed_G64 = 1780 , + KCaloryNeed_G65 = 1780 , + KCaloryNeed_G66 = 1780 , + KCaloryNeed_G67 = 1780 , + KCaloryNeed_G68 = 1780 , + KCaloryNeed_G69 = 1780 , + KCaloryNeed_G70 = 1780 , + KCaloryNeed_G71 = 1780 , + KCaloryNeed_G72 = 1780 , + KCaloryNeed_G73 = 1780 , + KCaloryNeed_G74 = 1780 , + KCaloryNeed_G75 = 1780 , + KCaloryNeed_G76 = 1780 , + KCaloryNeed_G77 = 1780 , + KCaloryNeed_G78 = 1780 , + KCaloryNeed_G79 = 1780 , + KCaloryNeed_G80 = 1780 , + KCaloryNeed_G81 = 1780 , + KCaloryNeed_G82 = 1780 , + KCaloryNeed_G83 = 1780 , + KCaloryNeed_G84 = 1780 , + KCaloryNeed_G85 = 1780 , + KCaloryNeed_G86 = 1780 , + KCaloryNeed_G87 = 1780 , + KCaloryNeed_G88 = 1780 , + KCaloryNeed_G89 = 1780 , + KCaloryNeed_G90 = 1780 , + KCaloryNeed_G91 = 1780 , + KCaloryNeed_G92 = 1780 , + KCaloryNeed_G93 = 1780 , + KCaloryNeed_G94 = 1780 , + KCaloryNeed_G95 = 1780 , + KCaloryNeed_G96 = 1780 , + KCaloryNeed_G97 = 1780 , + KCaloryNeed_G98 = 1780 , + KCaloryNeed_G99 = 1780 , + KCaloryNeed_A_B0 = 705 , + KCaloryNeed_A_B1 = 948 , + KCaloryNeed_A_B2 = 1070 , + KCaloryNeed_A_B3 = 1170 , + KCaloryNeed_A_B4 = 1270 , + KCaloryNeed_A_B5 = 1450 , + KCaloryNeed_A_B6 = 1600 , + KCaloryNeed_A_B7 = 1730 , + KCaloryNeed_A_B8 = 1860 , + KCaloryNeed_A_B9 = 1990 , + KCaloryNeed_A_B10 = 2120 , + KCaloryNeed_A_B11 = 2250 , + KCaloryNeed_A_B12 = 2600 , + KCaloryNeed_A_B13 = 2800 , + KCaloryNeed_A_B14 = 3000 , + KCaloryNeed_A_B15 = 3200 , + KCaloryNeed_A_B16 = 3300 , + KCaloryNeed_A_B17 = 3200 , + KCaloryNeed_A_B18 = 3100 , + KCaloryNeed_A_B19 = 3087 , + KCaloryNeed_A_B20 = 3074 , + KCaloryNeed_A_B21 = 3061 , + KCaloryNeed_A_B22 = 3048 , + KCaloryNeed_A_B23 = 3035 , + KCaloryNeed_A_B24 = 3022 , + KCaloryNeed_A_B25 = 3009 , + KCaloryNeed_A_B26 = 2996 , + KCaloryNeed_A_B27 = 2983 , + KCaloryNeed_A_B28 = 2970 , + KCaloryNeed_A_B29 = 2957 , + KCaloryNeed_A_B30 = 2950 , + KCaloryNeed_A_B31 = 2947 , + KCaloryNeed_A_B32 = 2944 , + KCaloryNeed_A_B33 = 2941 , + KCaloryNeed_A_B34 = 2938 , + KCaloryNeed_A_B35 = 2935 , + KCaloryNeed_A_B36 = 2932 , + KCaloryNeed_A_B37 = 2929 , + KCaloryNeed_A_B38 = 2926 , + KCaloryNeed_A_B39 = 2923 , + KCaloryNeed_A_B40 = 2920 , + KCaloryNeed_A_B41 = 2917 , + KCaloryNeed_A_B42 = 2914 , + KCaloryNeed_A_B43 = 2911 , + KCaloryNeed_A_B44 = 2908 , + KCaloryNeed_A_B45 = 2905 , + KCaloryNeed_A_B46 = 2902 , + KCaloryNeed_A_B47 = 2899 , + KCaloryNeed_A_B48 = 2896 , + KCaloryNeed_A_B49 = 2893 , + KCaloryNeed_A_B50 = 2890 , + KCaloryNeed_A_B51 = 2887 , + KCaloryNeed_A_B52 = 2884 , + KCaloryNeed_A_B53 = 2881 , + KCaloryNeed_A_B54 = 2878 , + KCaloryNeed_A_B55 = 2875 , + KCaloryNeed_A_B56 = 2872 , + KCaloryNeed_A_B57 = 2869 , + KCaloryNeed_A_B58 = 2866 , + KCaloryNeed_A_B59 = 2863 , + KCaloryNeed_A_B60 = 2800 , + KCaloryNeed_A_B61 = 2777 , + KCaloryNeed_A_B62 = 2754 , + KCaloryNeed_A_B63 = 2731 , + KCaloryNeed_A_B64 = 2708 , + KCaloryNeed_A_B65 = 2685 , + KCaloryNeed_A_B66 = 2662 , + KCaloryNeed_A_B67 = 2639 , + KCaloryNeed_A_B68 = 2616 , + KCaloryNeed_A_B69 = 2593 , + KCaloryNeed_A_B70 = 2570 , + KCaloryNeed_A_B71 = 2547 , + KCaloryNeed_A_B72 = 2524 , + KCaloryNeed_A_B73 = 2501 , + KCaloryNeed_A_B74 = 2478 , + KCaloryNeed_A_B75 = 2455 , + KCaloryNeed_A_B76 = 2432 , + KCaloryNeed_A_B77 = 2409 , + KCaloryNeed_A_B78 = 2386 , + KCaloryNeed_A_B79 = 2363 , + KCaloryNeed_A_B80 = 2340 , + KCaloryNeed_A_B81 = 2317 , + KCaloryNeed_A_B82 = 2294 , + KCaloryNeed_A_B83 = 2271 , + KCaloryNeed_A_B84 = 2248 , + KCaloryNeed_A_B85 = 2225 , + KCaloryNeed_A_B86 = 2202 , + KCaloryNeed_A_B87 = 2179 , + KCaloryNeed_A_B88 = 2156 , + KCaloryNeed_A_B89 = 2133 , + KCaloryNeed_A_B90 = 2110 , + KCaloryNeed_A_B91 = 2087 , + KCaloryNeed_A_B92 = 2064 , + KCaloryNeed_A_B93 = 2041 , + KCaloryNeed_A_B94 = 2018 , + KCaloryNeed_A_B95 = 1995 , + KCaloryNeed_A_B96 = 1972 , + KCaloryNeed_A_B97 = 1949 , + KCaloryNeed_A_B98 = 1926 , + KCaloryNeed_A_B99 = 1903 , + KCaloryNeed_A_G0 = 675 , + KCaloryNeed_A_G1 = 908 , + KCaloryNeed_A_G2 = 1034 , + KCaloryNeed_A_G3 = 1134 , + KCaloryNeed_A_G4 = 1234 , + KCaloryNeed_A_G5 = 1370 , + KCaloryNeed_A_G6 = 1500 , + KCaloryNeed_A_G7 = 1650 , + KCaloryNeed_A_G8 = 1800 , + KCaloryNeed_A_G9 = 1900 , + KCaloryNeed_A_G10 = 2050 , + KCaloryNeed_A_G11 = 2250 , + KCaloryNeed_A_G12 = 2450 , + KCaloryNeed_A_G13 = 2700 , + KCaloryNeed_A_G14 = 2900 , + KCaloryNeed_A_G15 = 2900 , + KCaloryNeed_A_G16 = 2750 , + KCaloryNeed_A_G17 = 2700 , + KCaloryNeed_A_G18 = 2695 , + KCaloryNeed_A_G19 = 2690 , + KCaloryNeed_A_G20 = 2685 , + KCaloryNeed_A_G21 = 2680 , + KCaloryNeed_A_G22 = 2675 , + KCaloryNeed_A_G23 = 2670 , + KCaloryNeed_A_G24 = 2665 , + KCaloryNeed_A_G25 = 2660 , + KCaloryNeed_A_G26 = 2655 , + KCaloryNeed_A_G27 = 2650 , + KCaloryNeed_A_G28 = 2645 , + KCaloryNeed_A_G29 = 2640 , + KCaloryNeed_A_G30 = 2630 , + KCaloryNeed_A_G31 = 2625 , + KCaloryNeed_A_G32 = 2620 , + KCaloryNeed_A_G33 = 2615 , + KCaloryNeed_A_G34 = 2610 , + KCaloryNeed_A_G35 = 2605 , + KCaloryNeed_A_G36 = 2600 , + KCaloryNeed_A_G37 = 2595 , + KCaloryNeed_A_G38 = 2590 , + KCaloryNeed_A_G39 = 2585 , + KCaloryNeed_A_G40 = 2580 , + KCaloryNeed_A_G41 = 2575 , + KCaloryNeed_A_G42 = 2570 , + KCaloryNeed_A_G43 = 2565 , + KCaloryNeed_A_G44 = 2560 , + KCaloryNeed_A_G45 = 2555 , + KCaloryNeed_A_G46 = 2550 , + KCaloryNeed_A_G47 = 2545 , + KCaloryNeed_A_G48 = 2540 , + KCaloryNeed_A_G49 = 2535 , + KCaloryNeed_A_G50 = 2530 , + KCaloryNeed_A_G51 = 2525 , + KCaloryNeed_A_G52 = 2520 , + KCaloryNeed_A_G53 = 2515 , + KCaloryNeed_A_G54 = 2510 , + KCaloryNeed_A_G55 = 2505 , + KCaloryNeed_A_G56 = 2500 , + KCaloryNeed_A_G57 = 2495 , + KCaloryNeed_A_G58 = 2490 , + KCaloryNeed_A_G59 = 2485 , + KCaloryNeed_A_G60 = 2400 , + KCaloryNeed_A_G61 = 2389 , + KCaloryNeed_A_G62 = 2378 , + KCaloryNeed_A_G63 = 2367 , + KCaloryNeed_A_G64 = 2356 , + KCaloryNeed_A_G65 = 2345 , + KCaloryNeed_A_G66 = 2334 , + KCaloryNeed_A_G67 = 2323 , + KCaloryNeed_A_G68 = 2312 , + KCaloryNeed_A_G69 = 2301 , + KCaloryNeed_A_G70 = 2290 , + KCaloryNeed_A_G71 = 2279 , + KCaloryNeed_A_G72 = 2268 , + KCaloryNeed_A_G73 = 2257 , + KCaloryNeed_A_G74 = 2246 , + KCaloryNeed_A_G75 = 2235 , + KCaloryNeed_A_G76 = 2224 , + KCaloryNeed_A_G77 = 2213 , + KCaloryNeed_A_G78 = 2202 , + KCaloryNeed_A_G79 = 2191 , + KCaloryNeed_A_G80 = 2180 , + KCaloryNeed_A_G81 = 2169 , + KCaloryNeed_A_G82 = 2158 , + KCaloryNeed_A_G83 = 2147 , + KCaloryNeed_A_G84 = 2136 , + KCaloryNeed_A_G85 = 2125 , + KCaloryNeed_A_G86 = 2114 , + KCaloryNeed_A_G87 = 2103 , + KCaloryNeed_A_G88 = 2092 , + KCaloryNeed_A_G89 = 2081 , + KCaloryNeed_A_G90 = 2070 , + KCaloryNeed_A_G91 = 2059 , + KCaloryNeed_A_G92 = 2048 , + KCaloryNeed_A_G93 = 2037 , + KCaloryNeed_A_G94 = 2026 , + KCaloryNeed_A_G95 = 2015 , + KCaloryNeed_A_G96 = 2004 , + KCaloryNeed_A_G97 = 1993 , + KCaloryNeed_A_G98 = 1982 , + KCaloryNeed_A_G99 = 1971 , + #KCaloryNeed_B1 = 850, + #KCaloryNeed_G1 = 780, + #KCaloryNeed_B2 = 1250, + #KCaloryNeed_G2 = 1190, + #KCaloryNeed_B3 = 1430, + #KCaloryNeed_G3 = 1330, + #KCaloryNeed_B4 = 1560, + #KCaloryNeed_G4 = 1440, + #KCaloryNeed_B5 = 1690, + #KCaloryNeed_G5 = 1540, + #KCaloryNeed_B6 = 1980, + #KCaloryNeed_G6 = 1730, + #KCaloryNeed_B7 = 2370, + #KCaloryNeed_G7 = 2040, + #KCaloryNeed_B8 = 2700, + #KCaloryNeed_G8 = 2120, + #KCaloryNeed_B9 = 2460, + #KCaloryNeed_G9 = 1990, + #KCaloryNeed_B10 = 2010, + #KCaloryNeed_G10 = 1780, + #KCaloryNeed_A_B1 = 705, + #KCaloryNeed_A_G1 = 643, + #KCaloryNeed_A_B2 = 948, + #KCaloryNeed_A_G2 = 865, + #KCaloryNeed_A_B3 = 1120, + #KCaloryNeed_A_G3 = 1047, + #KCaloryNeed_A_B4 = 1360, + #KCaloryNeed_A_G4 = 1242, + #KCaloryNeed_A_B5 = 1927, + #KCaloryNeed_A_G5 = 1782, + #KCaloryNeed_A_B6 = 3036, + #KCaloryNeed_A_G6 = 2434, + #KCaloryNeed_A_B7 = 3029, + #KCaloryNeed_A_G7 = 2300, + #KCaloryNeed_A_B8 = 2900, + #KCaloryNeed_A_G8 = 2200, + #KCaloryNeed_A_B9 = 2350, + #KCaloryNeed_A_G9 = 2000, + KCaloryNeed_lactating = 500, + InitialPoorPercentile= 1:20, + SectorsNumbers = 1:5, + SectorsNames = c("Public","Cooperative","Private","BussP","Agri"), + D80LinkSource ="../Data/D80Link.accdb", + D80LinkDest =D80LinkDest +) +write(as.yaml(Settings),file = "Settings.yaml") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/prices mean.R b/R/Archive/June 2020 (removed code files)/prices mean.R new file mode 100644 index 00000000..be592273 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/prices mean.R @@ -0,0 +1,17 @@ +TotalFoodNonDurable[GhandPrice>0,weighted.mean(GhandPrice,Weight)] +TotalFoodNonDurable[CowMeatPrice>0,weighted.mean(CowMeatPrice,Weight)] +TotalFoodNonDurable[Loobia_ChitiPrice>0,weighted.mean(Loobia_ChitiPrice,Weight)] +TotalFoodNonDurable[Fish_North_FreshPrice>0,weighted.mean(Fish_North_FreshPrice,Weight)] +TotalFoodNonDurable[MacaroniPrice>0,weighted.mean(MacaroniPrice,Weight)] +TotalFoodNonDurable[Yogurt_PasturizedPrice>0,weighted.mean(Yogurt_PasturizedPrice,Weight)] +TotalFoodNonDurable[PoultryMeat_MPrice>0,weighted.mean(PoultryMeat_MPrice,Weight)] +TotalFoodNonDurable[LavashPrice>0,weighted.mean(LavashPrice,Weight)] +TotalFoodNonDurable[Cheese_PasturizedPrice>0,weighted.mean(Cheese_PasturizedPrice,Weight)] +TotalFoodNonDurable[Oil_NabatiPrice>0,weighted.mean(Oil_NabatiPrice,Weight)] +TotalFoodNonDurable[Sabzi_KhordanPrice>0,weighted.mean(Sabzi_KhordanPrice,Weight)] +TotalFoodNonDurable[SibzaminiPrice>0,weighted.mean(SibzaminiPrice,Weight)] +TotalFoodNonDurable[Egg_MashinPrice>0,weighted.mean(Egg_MashinPrice,Weight)] +TotalFoodNonDurable[Milk_PasteurizedPrice>0,weighted.mean(Milk_PasteurizedPrice,Weight)] +TotalFoodNonDurable[NutsGrams>0,weighted.mean(NutsGrams,Weight)] +TotalFoodNonDurable[GhandPrice>0,weighted.mean(GhandPrice,Weight)] +TotalFoodNonDurable[GhandPrice>0,weighted.mean(GhandPrice,Weight)] diff --git a/R/Archive/June 2020 (removed code files)/realize 97 to 98.R b/R/Archive/June 2020 (removed code files)/realize 97 to 98.R new file mode 100644 index 00000000..5bf794e7 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/realize 97 to 98.R @@ -0,0 +1,31 @@ + +cpi97 <- read_excel("C:/Users/pc1/Desktop/cpi97.xlsx") +cpi97<-as.data.table(cpi97) +cpi97<-cpi97[Month>0] +cpi97<-cpi97[,Year:=NULL] +cpi97<-cpi97[,PeriodYear:=NULL] +cpi97<-cpi97[,.(FoodDrink_Index,Cigar_Index,Cloth_Index,HouseEnergy_Index, + Furniture_Index,Hygiene_Index,Transportation_Index, + Communication_Index,Amusement_Index,Hotel_Index, + Other_Index,Durable_Index,Total_Index)] + +MD<-merge(MD,Index_Dataset,by=c("Month"),all.x=TRUE) + +FoodDrink_Index<-219.7 +Cigar_Index<-281.1 +Cloth_Index<-197.8 +HouseEnergy_Index<-155.1 +Furniture_Index<-225.1 +Hygiene_Index<-158.1 +Transportation_Index<-195.9 +Communication_Index<-146.7 +Amusement_Index<-224.5 +Hotel_Index<-182.0 +Other_Index<-199.5 +Durable_Index<-259.2 +Total_Index<-185.1 + + + + + diff --git a/R/Archive/June 2020 (removed code files)/tedadshmelin.R b/R/Archive/June 2020 (removed code files)/tedadshmelin.R new file mode 100644 index 00000000..f7d2c87a --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/tedadshmelin.R @@ -0,0 +1,76 @@ +#Calculations.R + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculations =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + MD<-merge(MD,HHHouseProperties) + + SMD <- MD[,.(HHID,Region,HSex,HEduLevel,Decile,HActivityState,ServiceExp,MetrPrice, + ServiceExp,FoodExpenditure,Total_Exp_Month,ProvinceCode,car, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per,Total_Exp_Month_nondurable, + Weight,MetrPrice,Size,EqSizeOECD)] + + + #SMD<-SMD[,Total_Exp98:=1.35*Total_Exp_Month_nondurable] + SMD<-SMD[,Total_Exp98:=1.35*Total_Exp_Month] + SMD<-SMD[,HomePrice98:=ServiceExp*(100/3)*5*1.35] + + WT<-SMD[ (Size==1 & Total_Exp98>40000000) | + (Size==2 & Total_Exp98>50000000) | + (Size==3 & Total_Exp98>60000000) | + (Size==4 & Total_Exp98>70000000) | + (Size>=5 & Total_Exp98>80000000)] + + + HT1<-SMD[ProvinceCode==23 & HomePrice98>12000000000] + HT2<-SMD[ProvinceCode!=23 & HomePrice98>9000000000] + HT<-rbind(HT1,HT2) + + #HT1<-SMD[ProvinceCode==23 & MetrPrice98>360000] + #HT2<-SMD[ProvinceCode!=23 & MetrPrice98>270000] + #HT<-rbind(HT1,HT2) + + HousePrice<-HT[,.(HousePrice=sum(Weight*Size)),by=.(Region)] + HousePrice2<-HT[,.(HousePrice2=sum(Weight*Size)),by=.(Region,Decile)] + + HighIncome<-WT[,.(HighIncome=sum(Weight*Size)),by=.(Region)] + HighIncome2<-WT[,.(HighIncome2=sum(Weight*Size)),by=.(Region,Decile)] + + car<-SMD[car=="True",.(car=sum(Weight*Size)),by=.(Region)] + car2<-SMD[car=="True",.(car2=sum(Weight*Size)),by=.(Region,Decile)] + + Active<-SMD[HActivityState=="Employed",.(Active=sum(Weight*Size)),by=.(Region)] + Active2<-SMD[HActivityState=="Employed",.(Active2=sum(Weight*Size)),by=.(Region,Decile)] + + + Having<-merge(HousePrice2,HighIncome2,all = TRUE) + Having<-merge(Having,car2,all = TRUE) + Having<-merge(Having,Active2,all = TRUE) + Having[is.na(Having)] <- 0 + + write.csv(HousePrice2,file = "HousePrice2.csv") + write.csv(HighIncome2,file = "HighIncome2.csv") + write.csv(car2,file = "car2.csv") + write.csv(Active2,file = "Active2.csv") + write.csv(Having,file = "Having.csv") + } + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/tedadshmelin2.R b/R/Archive/June 2020 (removed code files)/tedadshmelin2.R new file mode 100644 index 00000000..ddbe26f2 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/tedadshmelin2.R @@ -0,0 +1,147 @@ +#Calculations.R + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculations =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + MD <- merge(MD,HHHouseProperties) + + load(file = paste0(Settings$HEISProcessedPath,"Y",97,"TbussW2.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",97,"TAgriW2.rda")) + + MD<-merge(MD,TbussW2,all.x = TRUE) + MD<-merge(MD,TAgriW2,all.x = TRUE) + + SMD <- MD[,.(HHID,Region,HSex,HEduLevel,Decile,tenure,HActivityState,ServiceExp,MetrPrice, + ServiceExp,FoodExpenditure,Total_Exp_Month,ProvinceCode,car, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per,Total_Exp_Month_nondurable, + Weight,MetrPrice,Size,EqSizeOECD,WorkType.x,WorkType.y)] + SMD[is.na(SMD)] <- 0 + + #SMD<-SMD[,Total_Exp98:=1.35*Total_Exp_Month_nondurable] + SMD<-SMD[,Total_Exp98:=1.35*Total_Exp_Month] + SMD<-SMD[,HomePrice98:=ServiceExp*(100/3)*5*2] + + WT<-SMD[ (Size==1 & Total_Exp98>40000000) | + (Size==2 & Total_Exp98>50000000) | + (Size==3 & Total_Exp98>60000000) | + (Size==4 & Total_Exp98>70000000) | + (Size>=5 & Total_Exp98>80000000) ] + + SMD<-SMD[ ,HighIncome:=ifelse((Size==1 & Total_Exp98>40000000) | + (Size==2 & Total_Exp98>50000000) | + (Size==3 & Total_Exp98>60000000) | + (Size==4 & Total_Exp98>70000000) | + (Size>=5 & Total_Exp98>80000000),1,0) ] + + SMD<-SMD[,Size2:=ifelse(Size<5,Size,5)] + + + + + HighIncomeProv<-SMD[,weighted.mean(HighIncome,Weight),by=ProvinceCode] + HighIncomeSize<-SMD[,weighted.mean(HighIncome,Weight),by=Size2] + + HT1<-SMD[ProvinceCode==23 & HomePrice98>12000000000] + HT2<-SMD[ProvinceCode!=23 & HomePrice98>9000000000] + HT <-rbind(HT1,HT2) + + SMD<-SMD[ ,HighHouse:=ifelse((ProvinceCode==23 & HomePrice98>12000000000) | + (ProvinceCode!=23 & HomePrice98>9000000000),1,0) ] + HighHouseProv<-SMD[,weighted.mean(HighHouse,Weight),by=ProvinceCode] + HighHouseDecile<-SMD[,weighted.mean(HighHouse,Weight),by=c("Decile")] + + #HT1<-SMD[ProvinceCode==23 & MetrPrice98>360000] + #HT2<-SMD[ProvinceCode!=23 & MetrPrice98>270000] + #HT<-rbind(HT1,HT2) + + HousePrice <-HT[,.(HousePrice=sum(Weight*Size))] + HousePrice2<-HT[,.(HousePrice2=sum(Weight*Size)),by=.(Region,Decile)] + + HighIncome <-WT[,.(HighIncome=sum(Weight*Size))] + HighIncome2<-WT[,.(HighIncome2=sum(Weight*Size)),by=.(Region,Decile)] + + car <-SMD[car=="True",.(car=sum(Weight*Size))] + car2<-SMD[car=="True",.(car2=sum(Weight*Size)),by=.(Region,Decile)] + car3<-SMD[,weighted.mean(car=="True",Weight),by=.(Decile)] + + Active <-SMD[HActivityState=="Employed",.(Active=sum(Weight*Size))] + Active2<-SMD[HActivityState=="Employed",.(Active2=sum(Weight*Size)),by=.(Region,Decile)] + Active3<-SMD[,weighted.mean(HActivityState=="Employed",Weight),by=.(Region,Decile)] + + House <-SMD[tenure=="OwnLandandBuilding" | tenure=="Apartment" ,.(House=sum(Weight*Size)),by=.(Decile)] + House2<-SMD[tenure=="OwnLandandBuilding" | tenure=="Apartment",.(House2=sum(Weight*Size)),by=.(Region,Decile)] + House3<-SMD[,weighted.mean((tenure=="OwnLandandBuilding" | tenure=="Apartment"),Weight),by=.(Region,Decile)] + + + All3 <-SMD[(tenure=="OwnLandandBuilding" | tenure=="Apartment") & HActivityState=="Employed" & car=="True" ,.(All3=sum(Weight*Size)),by=.(Decile)] + All32<-SMD[(tenure=="OwnLandandBuilding" | tenure=="Apartment") & HActivityState=="Employed" & car=="True",.(All32=sum(Weight*Size)),by=.(Region,Decile)] + All33<-SMD[,weighted.mean((tenure=="OwnLandandBuilding" | tenure=="Apartment") & + HActivityState=="Employed" & car=="True",Weight), + by=.(Region,Decile)] + All34<-SMD[,weighted.mean((tenure=="OwnLandandBuilding" | tenure=="Apartment") & + HActivityState=="Employed" & car=="True",Weight), + by=.(ProvinceCode)] + + AllFinal<-SMD[,weighted.mean(((tenure=="OwnLandandBuilding" | tenure=="Apartment") & + HActivityState=="Employed" & car=="True"),Weight), + by=.(Decile)] + + EmployeeProv<-SMD[,weighted.mean((WorkType.x==4 | WorkType.y==4),Weight), + by=.(ProvinceCode)] + EmployeeDecile<-SMD[,weighted.mean((WorkType.x==4 | WorkType.y==4),Weight), + by=.(Decile)] + + + TotalProv<-SMD[,weighted.mean(((tenure=="OwnLandandBuilding" | tenure=="Apartment") & + HActivityState=="Employed" & car=="True") | + (ProvinceCode==23 & HomePrice98>12000000000) | + (ProvinceCode!=23 & HomePrice98>9000000000) | + (WorkType.x==4 | WorkType.y==4) | + (Size==1 & Total_Exp98>40000000) | + (Size==2 & Total_Exp98>50000000) | + (Size==3 & Total_Exp98>60000000) | + (Size==4 & Total_Exp98>70000000) | + (Size>=5 & Total_Exp98>80000000),Weight), + by=.(ProvinceCode)] + + Totaldecile<-SMD[,weighted.mean(((tenure=="OwnLandandBuilding" | tenure=="Apartment") & + HActivityState=="Employed" & car=="True") | + (ProvinceCode==23 & HomePrice98>12000000000) | + (ProvinceCode!=23 & HomePrice98>9000000000) | + (WorkType.x==4 | WorkType.y==4) | + (Size==1 & Total_Exp98>40000000) | + (Size==2 & Total_Exp98>50000000) | + (Size==3 & Total_Exp98>60000000) | + (Size==4 & Total_Exp98>70000000) | + (Size>=5 & Total_Exp98>80000000),Weight), + by=.(Decile)] + + + Having<-merge(HousePrice2,HighIncome2,all = TRUE) + Having<-merge(Having,All32,all = TRUE) + Having[is.na(Having)] <- 0 + + #write.csv(HousePrice2,file = "HousePrice2.csv") + #write.csv(HighIncome2,file = "HighIncome2.csv") + #write.csv(Having,file = "Having.csv") +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/testing durable groups.R b/R/Archive/June 2020 (removed code files)/testing durable groups.R new file mode 100644 index 00000000..76da6b43 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/testing durable groups.R @@ -0,0 +1,319 @@ + +g1 <- c(`43222`+ + `43223`+ + `43224`+ + `43225`+ + `53312`+ + `54044`+ + `55113`+ + `56221`+ + `72415`+ + `72416`+ + `72417`+ + `72422`+ + `91511`+ + `91515`+ + `91516`+ + `93119`+ + `93121`+ + `93122`+ + `93124`+ + `93125`+ + `93126`+ + `93411`+ + `93412`+ + `93414`+ + `93416`+ + `93417`+ + `95111`+ + `95112`+ + `95113`+ + `95114`+ + `95115`+ + `95121`+ + `95125`+ + `96111`+ + `96112`+ + `96113`+ + `96114`+ + `101111`+ + `101112`+ + `101113`+ + `101114`+ + `101115`+ + `102111`+ + `102112`+ + `102113`+ + `102114`+ + `102211`+ + `102212`+ + `102213`+ + `102214`+ + `102215`+ + `103111`+ + `103112`+ + `103113`+ + `103114`+ + `103115`+ + `103116`+ + `104111`+ + `104112`+ + `104113`+ + `104114`+ + `104115`+ + `105111`+ + `105112`+ + `105113`+ + `105114`+ + `105115`+ + `124113`+ + `125111`+ + `125112`+ + `125113`+ + `125114`+ + `125115`+ + `125116`+ + `125117`+ + `125118`+ + `125119`+ + `125121`+ + `125211`+ + `125212`+ + `125311`+ + `125312`+ + `125313`+ + `125314`+ + `125315`+ + `125316`+ + `125317`+ + `125411`+ + `125412`+ + `125413`+ + `125511`+ + `126111`+ + `126112`+ + `126211`+ + `126212`+ + `127111`+ + `127113`+ + `127114`+ + `127115`+ + `127116`+ + `127117`+ + `127118`+ + `127119`+ + `127121`+ + `127122`+ + `127123`+ + `127124`+ + `127125`+ + `127126`+ + `127127`+ + `127128`+ + `127132`+ + `127134`+ + `127136`+ + `127137`+ + `139111`+ + `139112`+ + `139113`+ + `139114`+ + `139115`+ + `139116`+ + `139211`+ + `139212`+ + `139213`+ + `139214`+ + `139215`+ + `139216`+ + `139217`) + +g2 <- c(`53111`+ + `53112`+ + `53113`+ + `53116`+ + `53125`+ + `53129`+ + `53132`+ + `53216`+ + `71111`+ + `71112`+ + `71116`+ + `71117`+ + `71211`+ + `71311`+ + `71312`+ + `72111`+ + `72118`+ + `72119`+ + `82111`+ + `82113`+ + `91111`+ + `91117`+ + `91122`+ + `91128`+ + `91129`+ + `91311`) + +g3 <- c(`31231`+ + `31243`+ + `31315`+ + `31413`+ + `43111`+ + `43112`+ + `43113`+ + `43114`+ + `43117`+ + `43118`+ + `43121`+ + `43122`+ + `43124`+ + `43125`+ + `43126`+ + `43127`+ + `43129`+ + `43131`+ + `43132`+ + `43134`+ + `43135`+ + `43211`+ + `43212`+ + `43213`+ + `43214`+ + `43215`+ + `43216`+ + `43217`+ + `43218`+ + `43219`+ + `51141`+ + `51142`+ + `51143`+ + `51153`+ + `51154`+ + `51156`+ + `51158`+ + `51159`+ + `51161`+ + `51171`+ + `51172`+ + `51173`+ + `51174`+ + `51175`+ + `51211`+ + `51212`+ + `51213`+ + `51214`+ + `51215`+ + `51311`+ + `51312`+ + `53115`+ + `53117`+ + `53118`+ + `53119`+ + `53121`+ + `53134`+ + `53135`+ + `53138`+ + `53139`+ + `53141`+ + `53211`+ + `53212`+ + `53213`+ + `53214`+ + `53225`+ + `53311`+ + `54022`+ + `54023`+ + `54025`+ + `54045`+ + `55111`+ + `55112`+ + `71314`+ + `72113`+ + `72117`+ + `72122`+ + `72123`+ + `72127`+ + `72131`+ + `72132`+ + `72133`+ + `72135`+ + `72137`+ + `72139`+ + `72141`+ + `72142`+ + `72311`+ + `72319`+ + `72321`+ + `72323`+ + `72413`+ + `72414`+ + `72421`+ + `82112`+ + `82117`+ + `91119`+ + `91121`+ + `91125`+ + `91126`+ + `91127`+ + `91212`+ + `91224`+ + `91225`+ + `91312`+ + `91313`+ + `91315`+ + `91316`+ + `91317`+ + `91319`+ + `91325`+ + `92122`+ + `92211`+ + `92213`+ + `92214`+ + `92313`+ + `93118`+ + `93127`+ + `93129`+ + `93212`+ + `93213`+ + `93214`+ + `93216`+ + `93218`+ + `93219`+ + `93223`+ + `93224`+ + `93226`+ + `93228`+ + `93229`+ + `93233`+ + `93235`+ + `93315`+ + `93316`+ + `123111`+ + `123112`+ + `123113`+ + `123121`+ + `123122`+ + `123131`+ + `123133`+ + `123134`+ + `123224`+ + `123225`) + +g4 <- c(`61211`+ + `61214`+ + `62124`+ + `62125`+ + `62126`+ + `62127`+ + `63141`+ + `63142`+ + `63143`+ + `63144`+ + `63145`+ + `63146`+ + `63147`+ + `63148`+ + `63149`+ + `63151`+ + `63152`) \ No newline at end of file diff --git a/R/Archive/June 2020 (removed code files)/x-runAll.R b/R/Archive/June 2020 (removed code files)/x-runAll.R new file mode 100644 index 00000000..644d4661 --- /dev/null +++ b/R/Archive/June 2020 (removed code files)/x-runAll.R @@ -0,0 +1,4 @@ +rfiles <- dir(pattern = glob2rx("*.R")) +rfiles +for(f in rfiles[15:21]) + source(f) diff --git a/R/Archive/MedianCalculations.R b/R/Archive/MedianCalculations.R new file mode 100644 index 00000000..921a643e --- /dev/null +++ b/R/Archive/MedianCalculations.R @@ -0,0 +1,79 @@ +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(spatstat) +library(data.table) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + inflation <- read_excel("~/GitHub/IRHEIS/Data/inflation.xlsx") + + Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) + Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) + Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size, + EqSizeCalory)],by="HHID") + Bfd2[is.na(Bfd2)]<-0 + Bfd2[Price<0.1,Price:=NA] + + MD<-MD[order(FoodKCaloriesHH_Per)] + C<-as.data.table(MD[,weighted.median(FoodKCaloriesHH_Per,Weight*Size)]) + C<-C[,Year:=year] + + Bfd2<-Bfd2[FoodType=="Meat"] + Bfd2<-Bfd2[order(FGrams)] + Meat<-as.data.table(Bfd2[,weighted.median(FGrams/EqSizeCalory,Weight*Size)]) + Meat<-Meat[,Year:=year] + + Bfd2 <- Bfd2[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + Bfd2 <- Bfd2[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + BaseYearBasket <-as.data.table(Bfd2[Decile==5 | Decile==6,weighted.mean(FGrams/EqSizeCalory,Weight*Size)]) + BaseYearBasket<-BaseYearBasket[,Year:=year] + Calory<-MD[,weighted.mean(FoodKCaloriesHH_Per,Weight*Size),by=c("Decile")] + Calory<-Calory[,Year:=year] + + MD<-MD[order(Total_Exp_Month_Per)] + MD <- MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + MD <- MD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + EXP<-as.data.table(MD[Decile==5 | Decile==6,weighted.mean(Total_Exp_Month_Per)]) + EXP<-EXP[,Year:=year] + + MD<-MD[order(FoodKCaloriesHH_Per)] + MD <- MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + + MD <- MD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + Calory<-as.data.table(MD[Decile==5 | Decile==6,weighted.mean(FoodKCaloriesHH_Per)]) + Calory<-Calory[,Year:=year] + + MD<-MD[order(Total_Exp_Month_Per)] + MedianEXP<-as.data.table(MD[,weighted.median(Total_Exp_Month_Per,Weight*Size)]) + MedianEXP<-MedianEXP[,Year:=year] + if (year==90){ + BASKET<-BaseYearBasket + CALORY<-Calory + Cal<-C + EXPenditure<-EXP + MEAT<-Meat + medEXP<-MedianEXP + }else{ + medEXP<-rbind(medEXP,MedianEXP) + BASKET<-rbind(BASKET,BaseYearBasket) + CALORY<-rbind(CALORY,Calory) + Cal<-rbind(Cal,C) + EXPenditure<-rbind(EXPenditure,EXP) + MEAT<-rbind(MEAT,Meat) + } +} +medEXP<-merge(medEXP,inflation,by=c("Year")) +medEXP<-medEXP[,RealEXP:=V1/CPI] + +EXPenditure<-merge(EXPenditure,inflation,by=c("Year")) +EXPenditure<-EXPenditure[,RealEXP:=V1/CPI] + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"]," seconds") diff --git a/R/Archive/MedianCalculations2.R b/R/Archive/MedianCalculations2.R new file mode 100644 index 00000000..003bbf9b --- /dev/null +++ b/R/Archive/MedianCalculations2.R @@ -0,0 +1,89 @@ +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(spatstat) +library(data.table) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + #inflation <- read_excel("~/GitHub/IRHEIS/Data/inflation.xlsx") + inflation <- read_excel("inflation.xlsx") + + Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) + Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) + Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size, + EqSizeCalory)],by="HHID") + Bfd2[is.na(Bfd2)]<-0 + Bfd2[Price<0.1,Price:=NA] + + MD<-MD[order(FoodKCaloriesHH_Per)] + C<-as.data.table(MD[,weighted.median(FoodKCaloriesHH_Per,Weight*Size)]) + C<-C[,Year:=year] + + Bfd2<-Bfd2[FoodType=="Meat"] + Bfd2<-Bfd2[order(FGrams)] + Meat<-as.data.table(Bfd2[,weighted.mean(FGrams/EqSizeCalory,Weight*Size)]) + Meat<-Meat[,Year:=year] + + Bfd2 <- Bfd2[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + Bfd2 <- Bfd2[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + BaseYearBasket <-as.data.table(Bfd2[Decile==5 | Decile==6,weighted.mean(FGrams/EqSizeCalory,Weight*Size)]) + #BaseYearBasket <-as.data.table(Bfd2[,weighted.mean(FGrams/EqSizeCalory,Weight*Size)]) + BaseYearBasket<-BaseYearBasket[,Year:=year] + Calory<-MD[,weighted.mean(FoodKCaloriesHH_Per,Weight*Size),by=c("Decile")] + Calory<-Calory[,Year:=year] + + MD<-MD[order(Total_Exp_Month_Per)] + MD <- MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + MD <- MD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + EXP<-as.data.table(MD[Decile==5 | Decile==6,weighted.mean(Total_Exp_Month_Per,Weight)]) + #EXP<-as.data.table(MD[,weighted.mean(Total_Exp_Month_Per,Weight)]) + EXP<-EXP[,Year:=year] + + MD<-MD[order(FoodKCaloriesHH_Per)] + MD <- MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + + MD <- MD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + Calory<-as.data.table(MD[Decile==5 | Decile==6,weighted.mean(FoodKCaloriesHH_Per)]) + #Calory<-as.data.table(MD[,weighted.mean(FoodKCaloriesHH_Per)]) + Calory<-Calory[,Year:=year] + + MD<-MD[order(Total_Exp_Month_Per)] + MedianEXP<-as.data.table(MD[,weighted.median(Total_Exp_Month_Per,Weight*Size)]) + MedianEXP<-MedianEXP[,Year:=year] + if (year==Settings$startyear){ + BASKET<-BaseYearBasket + CALORY<-Calory + Cal<-C + EXPenditure<-EXP + MEAT<-Meat + medEXP<-MedianEXP + }else{ + medEXP<-rbind(medEXP,MedianEXP) + BASKET<-rbind(BASKET,BaseYearBasket) + CALORY<-rbind(CALORY,Calory) + Cal<-rbind(Cal,C) + EXPenditure<-rbind(EXPenditure,EXP) + MEAT<-rbind(MEAT,Meat) + } + + cat(Bfd2[,weighted.mean(FGrams>0,Weight)],"\t") + Bfd2[,Decile:=NULL] + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + Bfd2<-merge(Bfd2,Decile,by="HHID") +Bfd2[,weighted.mean(FGrams/EqSizeCalory,Weight),by="Decile"][order(Decile)] +} +medEXP<-merge(medEXP,inflation,by=c("Year")) +medEXP<-medEXP[,RealEXP:=V1/CPI*100] + +EXPenditure<-merge(EXPenditure,inflation,by=c("Year")) +EXPenditure<-EXPenditure[,RealEXP:=V1/CPI*100] + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"]," seconds") diff --git a/R/Archive/MedianCalculations3.R b/R/Archive/MedianCalculations3.R new file mode 100644 index 00000000..8bb2af2e --- /dev/null +++ b/R/Archive/MedianCalculations3.R @@ -0,0 +1,125 @@ +rm(list=ls()) +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(readxl) +library(spatstat) +library(data.table) +year<-98 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + #inflation <- read_excel("~/GitHub/IRHEIS/Data/inflation.xlsx") + inflation <- read_excel("inflation.xlsx") + MD<-MD[,Decile:=NULL] + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + MD<-merge(MD,Decile,by="HHID") + + + Bfd2 <- data.table(expand.grid(HHID=MD$HHID,FoodType=unique(BigFData$FoodType))) + Bfd2 <- merge(Bfd2,BigFData,all.x = TRUE) + Bfd2 <- merge(Bfd2,MD[,.(HHID,Region,Weight,Size, + EqSizeCalory)],by="HHID") + Bfd2[is.na(Bfd2)]<-0 + Bfd2[Price<0.1,Price:=NA] + + # MD<-MD[order(TFoodKCaloriesHH_Per)] + # C<-as.data.table(MD[,weighted.median(TFoodKCaloriesHH_Per,Weight*Size)]) + # C<-C[,Year:=year] + + Bfd2<-Bfd2[FoodType=="Bread",.(HHID,FoodType,FGrams,EqSizeCalory,Weight,Size)] + Bfd2 <- Bfd2[,lapply(.SD,sum),by=c("HHID"),.SDcols=c("FGrams")] + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles_Nonreal.rda")) +# Bfd2<-merge(Bfd2,NRMD,by=c("HHID"),all.x =TRUE) + Bfd2<-merge(MD[,.(HHID,Size,EqSizeCalory,Weight,Decile)],Bfd2,all.x=TRUE,by="HHID") + Bread<-as.data.table(Bfd2[,weighted.mean(FGrams,Weight*Size)]) + Bread<-Bread[,Year:=year] + if (year==Settings$startyear){ +BREAD<-Bread + }else{ + BREAD<-rbind(BREAD,Bread) + } + + + + + + Meat<-Bfd2[,.(HHID,FGrams)] + save(Meat,file=paste0(Settings$HEISProcessedPath,"Y",year,"Laban.rda")) + # masraf<-Bfd2[,weighted.mean(FGrams,Weight),by=c("Decile_NonReal","FoodType")] + # masraf2<- data.table(expand.grid(masraf$FoodType,Decile=unique(masraf$Decile))) + + Bfd2<-Bfd2[order(FGrams)] + Meat<-as.data.table(Bfd2[,weighted.mean(FGrams/EqSizeCalory,Weight*Size)]) + Meat<-Meat[,Year:=year] + + Bfd2 <- Bfd2[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + Bfd2 <- Bfd2[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + BaseYearBasket <-as.data.table(Bfd2[,weighted.mean(FGrams/EqSizeCalory,Weight*Size)]) + #BaseYearBasket <-as.data.table(Bfd2[,weighted.mean(FGrams/EqSizeCalory,Weight*Size)]) + BaseYearBasket<-BaseYearBasket[,Year:=year] + Calory<-MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight*Size),by=c("Decile")] + Calory<-Calory[,Year:=year] + + MD<-MD[order(Total_Exp_Month_Per_nondurable)] + MD <- MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + MD <- MD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + EXP<-as.data.table(MD[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight)]) + #EXP<-as.data.table(MD[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight)]) + EXP<-EXP[,Year:=year] + + + MD[,Decile:=NULL] + + MD<-MD[order(TFoodKCaloriesHH_Per)] + MD <- MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + + MD <- MD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + Calory<-as.data.table(MD[,weighted.mean(TFoodKCaloriesHH_Per)]) + #Calory<-as.data.table(MD[,weighted.mean(FoodKCaloriesHH_Per)]) + Calory<-Calory[,Year:=year] + + MD<-MD[order(Total_Exp_Month_Per_nondurable)] + MedianEXP<-as.data.table(MD[,weighted.median(Total_Exp_Month_Per_nondurable,Weight*Size)]) + MedianEXP<-MedianEXP[,Year:=year] + # if (year==90){ + # BASKET<-BaseYearBasket + # CALORY<-Calory + # Cal<-C + # EXPenditure<-EXP + ## MEAT<-Meat + # medEXP<-MedianEXP +# }else{ + #medEXP<-rbind(medEXP,MedianEXP) + #BASKET<-rbind(BASKET,BaseYearBasket) + #CALORY<-rbind(CALORY,Calory) + #Cal<-rbind(Cal,C) + #EXPenditure<-rbind(EXPenditure,EXP) + #MEAT<-rbind(MEAT,Meat) + # } + + cat(Bfd2[,weighted.mean(FGrams>0,Weight)],"\t") + Bfd2[,Decile:=NULL] + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles1.rda")) + # if (year==98){ + # Decile[,Decile:=Decile1] + #} + Bfd2<-merge(Bfd2,Decile,by=c("HHID")) + Bfd2[,weighted.mean(FGrams/EqSizeCalory,Weight*Size),by="Decile"][order(Decile)] + MD<-MD[,Decile:=NULL] + MD<-merge(MD,Decile,by=c("HHID")) + MD[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight*Size),by="Decile"][order(Decile)] + MD[,weighted.mean(TFoodKCaloriesHH_Per,Weight*Size),by="Decile"][order(Decile)] + +} +#medEXP<-merge(medEXP,inflation,by=c("Year")) +#medEXP<-medEXP[,RealEXP:=V1/CPI*100] + +#EXPenditure<-merge(EXPenditure,inflation,by=c("Year")) +#EXPenditure<-EXPenditure[,RealEXP:=V1/CPI*100] + +endtime <- proc.time() +cat("\n\n============================\nIt took", + (endtime-starttime)["elapsed"]," seconds") diff --git a/R/Archive/Medical Premium.R b/R/Archive/Medical Premium.R new file mode 100644 index 00000000..4666345f --- /dev/null +++ b/R/Archive/Medical Premium.R @@ -0,0 +1,43 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Bime =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) +library(ggplot2) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy,G125,G1253,G1251)],by="HHID") + MD[,Decile:=NULL] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + if (year==98){ + names(Deciles)<-c("HHID","Decile","Percentile") + } + + MD<-merge(MD,Deciles,by="HHID") + + +} + +x<-MD[,weighted.mean(G1251>0,Weight),by=Decile] + + + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/113-Demo.R b/R/Archive/November 2019/113-Demo.R new file mode 100644 index 00000000..4492d27a --- /dev/null +++ b/R/Archive/November 2019/113-Demo.R @@ -0,0 +1,529 @@ +# 113-Demo.R +# Builds the demographics information data.table for households +# +# Copyright © 2016: Majid Einian +# Licence: GPL-3 +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Demo =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) +library(plotrix) +library(Hmisc) +library(haven) +library(sm) +library(gridExtra) +#P1<-P1[,`:=`(Dimension=.N),by=.(HHID)] + +P1Cols <- data.table(read_excel(Settings$MetaDataFilePath, Settings$MDS_P1Cols)) + +EduCodesA <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_A)) +EduCodesB <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_B)) +EduCodesC <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_C)) +EduCodesD <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_D)) + +years <- Settings$startyear:Settings$endyear + +for(year in years){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) + if(year<=84){ + EduCodeT <- EduCodesA + }else if(year %in% 85:92){ + EduCodeT <- EduCodesB + }else if(year %in% 93:96){ + EduCodeT <- EduCodesC + }else{ + EduCodeT <- EduCodesD + } + + P1 <- rbind(Tables[[paste0("R",year,"P1")]],Tables[[paste0("U",year,"P1")]]) + nP1 <- names(P1) + if(length(which(sapply(P1, is.character)))>0){ + P1c <- P1[,lapply(.SD,iconv,"WINDOWS-1252","UTF-8"), .SDcols=sapply(P1,is.character)] + P1nc <- P1[,!sapply(P1,is.character),with=FALSE] + P1 <- cbind(P1c,P1nc)[,nP1,with=FALSE] + } + + a <- unlist(P1Cols[P1Cols$Year==year,]) + ind <- which(!is.na(a))[-1] + setnames(P1,a[ind],names(a[ind])) + + f <- function(x){as.numeric(str_trim(x))} + P1 <- P1[, lapply(.SD, f)] # , .SDcols=which(sapply(P1, class)=="character")] + + + P1[is.na(Age),Age:=0L] + P1[,Relationship :=factor(Relationship, levels=1:9, + labels=c("Head","Spouse","Child","Child-in-Law", + "Grand-Child","Parent","Sister/Brother", + "Other Family","Non-Family"))] + + P1[,Sex := factor(Sex, levels=1:2, + labels=c("Male","Female"))] + + P1<-P1[Sex=="Male" | Sex=="Female"] + + if(year %in% 63:64){ + P1[,Literate:=LitState<=3] + }else if(year %in% 65:68){ + P1[,Literate:=LitState<=2] + }else{ + P1[,Literate:=Literate==1] + } + + if(year %in% 63:68){ + P1[,Student:=LitState==1] + }else{ + P1[,Student:=Student==1] + } + + P1[,EduYears:=EduCodeT$yoe[match(EduCode,EduCodeT$Code)]] + P1$EduYears[P1$Literate==FALSE] <- 0 + P1[,EduLevel:=cut(EduYears,breaks=c(-1,0,6,12,22), + labels= c("Illiterate","Primary","Secondary","University"))] + P1[,EduLevel0:=cut(EduYears,breaks=c(-1,0,6,9,11,12,22), + labels= c("Illiterate","Elementary","Middle","High","Pre","University"))] + + P1[,ActivityState:=as.numeric(substr(as.character(ActivityState),1,1))] + + if(year %in% 63:64){ + P1[,ActivityState:=factor(ActivityState,1:9, + c("Employed","Seasonal Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Unemployed Not Looking for Job", + "Other","Former Member"))] + levels(P1$ActivityState) <- c(c("Employed","Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Other", + "Other","Other")) + }else if(year %in% 65:68){ + P1[,ActivityState:=factor(ActivityState,1:8, + c("Employed","Seasonal Unemployed","Income without Work", + "Unemployed","Student","Housekeeper", + "Other","Former Member"))] + levels(P1$ActivityState) <- c(c("Employed","Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Other", + "Other")) + }else{ + P1[,ActivityState:=factor(ActivityState,1:6, + c("Employed","Unemployed","Income without Work", + "Student","Housekeeper","Other"))] + } + + if(year %in% 66:68){ + P1[,MarritalState:=factor(NA,1:4, + c("Married","Widowed","Divorced","Bachelor"))] + }else{ + P1[,MarritalState:=factor(MarritalState,1:4, + c("Married","Widowed","Divorced","Bachelor"))] + } + + + + + P <- copy(P1) + + P <- P[order(P$HHID),] + + # B <- P[P[Age>=10,.SD,#.I[TotalIncome==max(TotalIncome)], + # by=HHID][,V1]][,c("HHID","IndivNo","Sex","Age", + # "Literate","Student",#"EduYears","EduLevel", + # "ActivityState","MarritalState"),with=FALSE] + B <- P[IndivNo==1] + setnames(B,2:length(B),sapply(X=names(B)[2:length(B)],function(X){paste("H",X,sep="")})) + B <- B[order(HHID,HIndivNo)] + B <- B[!duplicated(B$HHID),] + + B[,HEmployed:=HActivityState=="Employed"] + B[,HUnemployed:=HActivityState=="Unemployed"] + B[,HIncomeWOWork:=HActivityState=="Income without Work"] + + B <- B[!is.na(HActivityState) & !is.na(HLiterate)] + + + P[,Size:=1] + P[,Kids:=ifelse(Relationship=="Child",1,0)] + P[,NKids:=ifelse(Age<15,1,0)] + P[,NInfants:=ifelse(Age<=2,1,0)] + P[,NSmallKids:=ifelse(Age>=3 & Age<=13, 1, 0)] + + P[,NElementary:= ifelse(EduLevel0=="Elementary" & Student==TRUE,1,0)] + P[,NMiddle:= ifelse(EduLevel0=="Middle" & Student==TRUE,1,0)] + P[,NHigh:= ifelse(EduLevel0=="High" & Student==TRUE,1,0)] + P[,NPre:= ifelse(EduLevel0=="Pre" & Student==TRUE,1,0)] + + #Age Groups 1 + P[,NAge1B:=ifelse(Age==0 & Sex=="Male",1,0)] + P[,NAge1G:=ifelse(Age==0 & Sex=="Female",1,0)] + P[,NAge2B:=ifelse(Age==1 & Sex=="Male",1,0)] + P[,NAge2G:=ifelse(Age==1 & Sex=="Female",1,0)] + P[,NAge3B:=ifelse(Age==2 & Sex=="Male",1,0)] + P[,NAge3G:=ifelse(Age==2 & Sex=="Female",1,0)] + P[,NAge4B:=ifelse(Age==3 & Sex=="Male",1,0)] + P[,NAge4G:=ifelse(Age==3 & Sex=="Female",1,0)] + P[,NAge5B:=ifelse(Age==4 & Sex=="Male",1,0)] + P[,NAge5G:=ifelse(Age==4 & Sex=="Female",1,0)] + P[,NAge6B:=ifelse(Age<=9 & Age>4 & Sex=="Male",1,0)] + P[,NAge6G:=ifelse(Age<=9 & Age>4 & Sex=="Female",1,0)] + P[,NAge7B:=ifelse(Age<=14 & Age>9 & Sex=="Male",1,0)] + P[,NAge7G:=ifelse(Age<=14 & Age>9 & Sex=="Female",1,0)] + P[,NAge8B:=ifelse(Age<=19 & Age>14 & Sex=="Male",1,0)] + P[,NAge8G:=ifelse(Age<=19 & Age>14 & Sex=="Female",1,0)] + P[,NAge9B:=ifelse(Age<=59 & Age>19 & Sex=="Male",1,0)] + P[,NAge9G:=ifelse(Age<=59 & Age>19 & Sex=="Female",1,0)] + P[,NAge10B:=ifelse(Age>59 & Sex=="Male",1,0)] + P[,NAge10G:=ifelse(Age>59 & Sex=="Female",1,0)] + + #Age Groups 2 + P[,NAge1_A_B:=ifelse(Age==0 & Sex=="Male",1,0)] + P[,NAge1_A_G:=ifelse(Age==0 & Sex=="Female",1,0)] + P[,NAge2_A_B:=ifelse(Age==1 & Sex=="Male",1,0)] + P[,NAge2_A_G:=ifelse(Age==1 & Sex=="Female",1,0)] + P[,NAge3_A_B:=ifelse(Age>=2 & Age<=3 & Sex=="Male",1,0)] + P[,NAge3_A_G:=ifelse(Age>=2 & Age<=3 & Sex=="Female",1,0)] + P[,NAge4_A_B:=ifelse(Age>=4 & Age<=5 & Sex=="Male",1,0)] + P[,NAge4_A_G:=ifelse(Age>=4 & Age<=5 & Sex=="Female",1,0)] + P[,NAge5_A_B:=ifelse(Age<=11 & Age>=6 & Sex=="Male",1,0)] + P[,NAge5_A_G:=ifelse(Age<=11 & Age>=6 & Sex=="Female",1,0)] + P[,NAge6_A_B:=ifelse(Age<=17 & Age>=12 & Sex=="Male",1,0)] + P[,NAge6_A_G:=ifelse(Age<=17 & Age>=12 & Sex=="Female",1,0)] + P[,NAge7_A_B:=ifelse(Age<=29 & Age>=18 & Sex=="Male",1,0)] + P[,NAge7_A_G:=ifelse(Age<=29 & Age>=18 & Sex=="Female",1,0)] + P[,NAge8_A_B:=ifelse(Age<=60 & Age>=30 & Sex=="Male",1,0)] + P[,NAge8_A_G:=ifelse(Age<=60 & Age>=30 & Sex=="Female",1,0)] + P[,NAge9_A_B:=ifelse(Age>60 & Sex=="Male",1,0)] + P[,NAge9_A_G:=ifelse(Age>60 & Sex=="Female",1,0)] + P<- merge(P,lactating,by="HHID",all.x = TRUE) + P[,Calorie_Need1:=NAge1B*Settings$KCaloryNeed_B1+ + NAge2B*Settings$KCaloryNeed_B2+ + NAge3B*Settings$KCaloryNeed_B3+ + NAge4B*Settings$KCaloryNeed_B4+ + NAge5B*Settings$KCaloryNeed_B5+ + NAge6B*Settings$KCaloryNeed_B6+ + NAge7B*Settings$KCaloryNeed_B7+ + NAge8B*Settings$KCaloryNeed_B8+ + NAge9B*Settings$KCaloryNeed_B9+ + NAge10B*Settings$KCaloryNeed_B10+ + NAge1G*Settings$KCaloryNeed_G1+ + NAge2G*Settings$KCaloryNeed_G2+ + NAge3G*Settings$KCaloryNeed_G3+ + NAge4G*Settings$KCaloryNeed_G4+ + NAge5G*Settings$KCaloryNeed_G5+ + NAge6G*Settings$KCaloryNeed_G6+ + NAge7G*Settings$KCaloryNeed_G7+ + NAge8G*Settings$KCaloryNeed_G8+ + NAge9G*Settings$KCaloryNeed_G9+ + NAge10G*Settings$KCaloryNeed_G10+ + lactating*(Settings$KCaloryNeed_lactating)] + + + P[,Calorie_Need2:=NAge1_A_B*Settings$KCaloryNeed_A_B1+ + NAge2_A_B*Settings$KCaloryNeed_A_B2+ + NAge3_A_B*Settings$KCaloryNeed_A_B3+ + NAge4_A_B*Settings$KCaloryNeed_A_B4+ + NAge5_A_B*Settings$KCaloryNeed_A_B5+ + NAge6_A_B*Settings$KCaloryNeed_A_B6+ + NAge7_A_B*Settings$KCaloryNeed_A_B7+ + NAge8_A_B*Settings$KCaloryNeed_A_B8+ + NAge9_A_B*Settings$KCaloryNeed_A_B9+ + NAge1_A_G*Settings$KCaloryNeed_A_G1+ + NAge2_A_G*Settings$KCaloryNeed_A_G2+ + NAge3_A_G*Settings$KCaloryNeed_A_G3+ + NAge4_A_G*Settings$KCaloryNeed_A_G4+ + NAge5_A_G*Settings$KCaloryNeed_A_G5+ + NAge6_A_G*Settings$KCaloryNeed_A_G6+ + NAge7_A_G*Settings$KCaloryNeed_A_G7+ + NAge8_A_G*Settings$KCaloryNeed_A_G8+ + NAge9_A_G*Settings$KCaloryNeed_A_G9+ + lactating*(Settings$KCaloryNeed_lactating)] + + + + PSum <- P[,lapply(.SD,sum,na.rm=TRUE), + .SDcols=c("Size","NKids","NInfants","NSmallKids","NElementary", + "NMiddle","NHigh","NPre","NAge1B","NAge1G", + "NAge2B","NAge2G","NAge3B","NAge3G","NAge4B","NAge4G", + "NAge5B","NAge5G","NAge6B","NAge6G","NAge7B","NAge7G" + ,"NAge8B","NAge8G","NAge9B","NAge9G","NAge10B","NAge10G", + "NAge1_A_B","NAge1_A_G","Calorie_Need1","Calorie_Need2", + "NAge2_A_B","NAge2_A_G","NAge3_A_B","NAge3_A_G","NAge4_A_B","NAge4_A_G", + "NAge5_A_B","NAge5_A_G","NAge6_A_B","NAge6_A_G","NAge7_A_B","NAge7_A_G" + ,"NAge8_A_B","NAge8_A_G","NAge9_A_B","NAge9_A_G"),#,"TotalIncome"), + by="HHID"] + +# PSum <- PSum[TotalIncome>0] + + HHI <- merge(B,PSum,by="HHID") + HHI[,EqSizeOECD := ifelse(Size==NKids,1+(NKids-1)*0.5, + 1 + (Size-NKids-1)*0.7 + (NKids)*0.5)] + #HHI[,EqSizeOECD := ifelse(Size==NKids,1+(NKids-1)*0.3, + # 1 + (Size-NKids-1)*0.5 + (NKids)*0.3)] + #HHI[,EqSizeOECD := sqrt(Size)] + HHI <- HHI[!is.na(HLiterate)] + + rm(P,B,PSum) + save(HHI,year,file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + + + rm(HHI) + + # P1<-P1[,`:=`(Dimension=.N),by=.(HHID)] + # P1<-P1[Relationship== 'Head'] + # HHBase<-merge(HHBase,P1,by =c("HHID"),all=TRUE) + # save(HHBase, file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights>-HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + + P1<-merge(P1,HHWeights) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) + + + weighted.hist(P1$Age,P1$Weight,breaks=1:99,main="Age weighted histogram in Iran (1397)") + + P1<-merge(P1,HHBase) + P1<- merge(P1,lactating,by="HHID",all.x = TRUE) + + P1U<-P1[Region=="Urban"] + weighted.hist(P1U$Age,P1U$Weight,breaks=1:99,main="Age weighted histogram in Urban Areas (1397)") + + P1R<-P1[Region=="Rural"] + weighted.hist(P1R$Age,P1R$Weight,breaks=1:99,main="Age weighted histogram in Rural reas (1397)") + + # plot(density(P1$Age),weights =P1$Weight) + # lines(density(P1U$Age),weights =P1U$Weight) + #lines(density(P1R$Age),weights =P1R$Weight) + + # weighted.hist(P1$Age,P1$Weight,breaks=c(0,1,2,3,4,10,15,20,60), + # main="Age weighted histogram in Iran (1397)") + + load(file = "Cal_Edition.rda") + Poverty<-as.data.table(Poverty) + Edited<-Poverty[,.(Age,Sex,Cal_B_Edited,Cal_W_Edited)] + P1<-merge(P1,Edited,by=c("Sex", "Age")) + + + + P1[,B1:=ifelse(Age==0 & Sex=="Male",1,0)] + P1[,B2:=ifelse(Age==1 & Sex=="Male",1,0)] + P1[,B3:=ifelse(Age==2 & Sex=="Male",1,0)] + P1[,B4:=ifelse(Age==3 & Sex=="Male",1,0)] + P1[,B5:=ifelse(Age==4 & Sex=="Male",1,0)] + P1[,B6:=ifelse(Age>=5 & Age<=9 & Sex=="Male",1,0)] + P1[,B7:=ifelse(Age>=10 & Age<=14 & Sex=="Male",1,0)] + P1[,B8:=ifelse(Age>=15 & Age<=19 & Sex=="Male",1,0)] + P1[,B9:=ifelse(Age>=20 & Age<=59 & Sex=="Male",1,0)] + P1[,B10:=ifelse(Age>60 & Sex=="Male",1,0)] + P1[,G1:=ifelse(Age==0 & Sex=="Female",1,0)] + P1[,G2:=ifelse(Age==1 & Sex=="Female",1,0)] + P1[,G3:=ifelse(Age==2 & Sex=="Female",1,0)] + P1[,G4:=ifelse(Age==3 & Sex=="Female",1,0)] + P1[,G5:=ifelse(Age==4 & Sex=="Female",1,0)] + P1[,G6:=ifelse(Age>=5 & Age<=9 & Sex=="Female",1,0)] + P1[,G7:=ifelse(Age>=10 & Age<=14 & Sex=="Female",1,0)] + P1[,G8:=ifelse(Age>=15 & Age<=19 & Sex=="Female",1,0)] + P1[,G9:=ifelse(Age>=20 & Age<=59 & Sex=="Female",1,0)] + P1[,G10:=ifelse(Age>60 & Sex=="Female",1,0)] + + P1[,weighted.mean(B1,Weight)] + P1[,weighted.mean(B2,Weight)] + P1[,weighted.mean(B3,Weight)] + P1[,weighted.mean(B4,Weight)] + P1[,weighted.mean(B5,Weight)] + P1[,weighted.mean(B6,Weight)] + P1[,weighted.mean(B7,Weight)] + P1[,weighted.mean(B8,Weight)] + P1[,weighted.mean(B9,Weight)] + P1[,weighted.mean(B10,Weight)] + P1[,weighted.mean(G1,Weight)] + P1[,weighted.mean(G2,Weight)] + P1[,weighted.mean(G3,Weight)] + P1[,weighted.mean(G4,Weight)] + P1[,weighted.mean(G5,Weight)] + P1[,weighted.mean(G6,Weight)] + P1[,weighted.mean(G7,Weight)] + P1[,weighted.mean(G8,Weight)] + P1[,weighted.mean(G9,Weight)] + P1[,weighted.mean(G10,Weight)] + + P1<-P1[,Calorie_Need_WorldBank:= + weighted.mean(B1,Weight)*Settings$KCaloryNeed_B1 + + weighted.mean(G1,Weight)*Settings$KCaloryNeed_G1 + + weighted.mean(B2,Weight)*Settings$KCaloryNeed_B2 + + weighted.mean(G2,Weight)*Settings$KCaloryNeed_G2 + + weighted.mean(B3,Weight)*Settings$KCaloryNeed_B3 + + weighted.mean(G3,Weight)*Settings$KCaloryNeed_G3 + + weighted.mean(B4,Weight)*Settings$KCaloryNeed_B4 + + weighted.mean(G4,Weight)*Settings$KCaloryNeed_G4 + + weighted.mean(B5,Weight)*Settings$KCaloryNeed_B5 + + weighted.mean(G5,Weight)*Settings$KCaloryNeed_G5 + + weighted.mean(B6,Weight)*Settings$KCaloryNeed_B6 + + weighted.mean(G6,Weight)*Settings$KCaloryNeed_G6 + + weighted.mean(B7,Weight)*Settings$KCaloryNeed_B7 + + weighted.mean(G7,Weight)*Settings$KCaloryNeed_G7 + + weighted.mean(B8,Weight)*Settings$KCaloryNeed_B8 + + weighted.mean(G8,Weight)*Settings$KCaloryNeed_G8 + + weighted.mean(B9,Weight)*Settings$KCaloryNeed_B9 + + weighted.mean(G9,Weight)*Settings$KCaloryNeed_G9 + + weighted.mean(B10,Weight)*Settings$KCaloryNeed_B10 + + weighted.mean(G10,Weight)*Settings$KCaloryNeed_G10+ + weighted.mean(lactating,Weight)*(Settings$KCaloryNeed_lactating)] + + + + P1[,BA1:=ifelse(Age==0 & Sex=="Male",1,0)] + P1[,BA2:=ifelse(Age==1 & Sex=="Male",1,0)] + P1[,BA3:=ifelse(Age>=2 & Age<=3 & Sex=="Male",1,0)] + P1[,BA4:=ifelse(Age>=4 & Age<=5 & Sex=="Male",1,0)] + P1[,BA5:=ifelse(Age>=6 & Age<=11 & Sex=="Male",1,0)] + P1[,BA6:=ifelse(Age>=12 & Age<=17 & Sex=="Male",1,0)] + P1[,BA7:=ifelse(Age>=18 & Age<=29 & Sex=="Male",1,0)] + P1[,BA8:=ifelse(Age>=30 & Age<=60 & Sex=="Male",1,0)] + P1[,BA9:=ifelse(Age>60 & Sex=="Male",1,0)] + P1[,GA1:=ifelse(Age==0 & Sex=="Female",1,0)] + P1[,GA2:=ifelse(Age==1 & Sex=="Female",1,0)] + P1[,GA3:=ifelse(Age>=2 & Age<=3 & Sex=="Female",1,0)] + P1[,GA4:=ifelse(Age>=4 & Age<=5 & Sex=="Female",1,0)] + P1[,GA5:=ifelse(Age>=6 & Age<=11 & Sex=="Female",1,0)] + P1[,GA6:=ifelse(Age>=12 & Age<=17 & Sex=="Female",1,0)] + P1[,GA7:=ifelse(Age>=18 & Age<=29 & Sex=="Female",1,0)] + P1[,GA8:=ifelse(Age>=30 & Age<=60 & Sex=="Female",1,0)] + P1[,GA9:=ifelse(Age>60 & Sex=="Female",1,0)] + + P1[,weighted.mean(BA1,Weight)] + P1[,weighted.mean(BA2,Weight)] + P1[,weighted.mean(BA3,Weight)] + P1[,weighted.mean(BA4,Weight)] + P1[,weighted.mean(BA5,Weight)] + P1[,weighted.mean(BA6,Weight)] + P1[,weighted.mean(BA7,Weight)] + P1[,weighted.mean(BA8,Weight)] + P1[,weighted.mean(BA9,Weight)] + P1[,weighted.mean(GA1,Weight)] + P1[,weighted.mean(GA2,Weight)] + P1[,weighted.mean(GA3,Weight)] + P1[,weighted.mean(GA4,Weight)] + P1[,weighted.mean(GA5,Weight)] + P1[,weighted.mean(GA6,Weight)] + P1[,weighted.mean(GA7,Weight)] + P1[,weighted.mean(GA8,Weight)] + P1[,weighted.mean(GA9,Weight)] + + P1<-P1[,Calorie_Need_Anstitoo:= + weighted.mean(BA1,Weight)*Settings$KCaloryNeed_A_B1 + + weighted.mean(GA1,Weight)*Settings$KCaloryNeed_A_G1 + + weighted.mean(BA2,Weight)*Settings$KCaloryNeed_A_B2 + + weighted.mean(GA2,Weight)*Settings$KCaloryNeed_A_G2 + + weighted.mean(BA3,Weight)*Settings$KCaloryNeed_A_B3 + + weighted.mean(GA3,Weight)*Settings$KCaloryNeed_A_G3 + + weighted.mean(BA4,Weight)*Settings$KCaloryNeed_A_B4 + + weighted.mean(GA4,Weight)*Settings$KCaloryNeed_A_G4 + + weighted.mean(BA5,Weight)*Settings$KCaloryNeed_A_B5 + + weighted.mean(GA5,Weight)*Settings$KCaloryNeed_A_G5 + + weighted.mean(BA6,Weight)*Settings$KCaloryNeed_A_B6 + + weighted.mean(GA6,Weight)*Settings$KCaloryNeed_A_G6 + + weighted.mean(BA7,Weight)*Settings$KCaloryNeed_A_B7 + + weighted.mean(GA7,Weight)*Settings$KCaloryNeed_A_G7 + + weighted.mean(BA8,Weight)*Settings$KCaloryNeed_A_B8 + + weighted.mean(GA8,Weight)*Settings$KCaloryNeed_A_G8 + + weighted.mean(BA9,Weight)*Settings$KCaloryNeed_A_B9 + + weighted.mean(GA9,Weight)*Settings$KCaloryNeed_A_G9 + + weighted.mean(lactating,Weight)*Settings$KCaloryNeed_lactating] + + #cat(P1[,mean(Calorie_Need_WorldBank)],"\n") + cat(P1[,mean(Calorie_Need_Anstitoo)],"\n") + + Calorie_Need<-P1[,.(Calorie_Need_WorldBank=mean(Calorie_Need_WorldBank), + Calorie_Need_Anstitoo=mean(Calorie_Need_Anstitoo)),by="HHID"] + + save(P1,file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + save(Calorie_Need,file=paste0(Settings$HEISProcessedPath,"Y",year,"Calorie_Need.rda")) +} + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"MDU.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"MDR.rda")) + P1U<-P1[Region=="Urban"] + P1R<-P1[Region=="Rural"] + + P1U<-merge(P1U,MDU,all.x = TRUE) + P1R<-merge(P1R,MDR,all.x = TRUE) + + P1U2<-P1U[cluster3==2 ] + P1R3<-P1R[cluster3==3 ] + + # sm.density.compare(P1U$Age, P1U$cluster3==2) + weighted.hist(P1U$Age,P1U$Weight,breaks=1:99,main="Age weighted histogram in Urban Areas (1397)") + weighted.hist(P1U2$Age,P1U2$Weight,breaks=1:99,main="Age weighted histogram in Urban Areas (1397)") + plot(density(P1U$Age),weights =P1U$Weight) + lines(density(P1U2$Age),weights =P1U2$Weight) + +# sm.density.compare(P1R$Age, P1R$cluster3==3) + weighted.hist(P1R$Age,P1R$Weight,breaks=1:99,main="Age weighted histogram in Urban Areas (1397)") + weighted.hist(P1R3$Age,P1R3$Weight,breaks=1:99,main="Age weighted histogram in Urban Areas (1397)") + plot(density(P1R$Age),weights =P1R$Weight) + lines(density(P1R3$Age),weights =P1R3$Weight) + + + # Age1 <- P1U2$Age + # Age2 <- P1U$Age + # out <- histbackback(split(Age1, Age2), probability=TRUE, main = 'Urban- Second cluster') +# barplot(-out$left, col="red" , horiz=TRUE, space=0, add=TRUE, axes=FALSE) + # barplot(out$right, col="blue", horiz=TRUE, space=0, add=TRUE, axes=FALSE) + + # Age <- P1R3$Age + # Sex <- P1R3$Sex + # out <- histbackback(split(Age, Sex), probability=FALSE, main = 'Rural- Third cluster') +# barplot(-out$left, col="red" , horiz=TRUE, space=0, add=TRUE, axes=FALSE) +# barplot(out$right, col="blue", horiz=TRUE, space=0, add=TRUE, axes=FALSE) + + #Age <- P1U$Age + #Sex <- P1U$Sex + # out <- histbackback(split(Age, Sex), probability=FALSE, main = 'Urban- Total') + # barplot(-out$left, col="red" , horiz=TRUE, space=0, add=TRUE, axes=FALSE) + # barplot(out$right, col="blue", horiz=TRUE, space=0, add=TRUE, axes=FALSE) + + #Age <- P1R$Age + #Sex <- P1R$Sex + #out <- histbackback(split(Age, Sex), probability=FALSE, main = 'Rural-Total') + #barplot(-out$left, col="red" , horiz=TRUE, space=0, add=TRUE, axes=FALSE) + #barplot(out$right, col="blue", horiz=TRUE, space=0, add=TRUE, axes=FALSE) + + load(file = "Cal_Edition.rda") + plot(density(Poverty$Needed_Calorie_W)) + lines(density(Poverty$Needed_Calorie_B)) + + ggplot(Poverty, aes(fill=Sex, y=diff, x=Age)) + + geom_bar(position="dodge", stat="identity") + + Poverty<-as.data.table(Poverty) + PovertyM<-Poverty[Sex=="Male"] + PovertyF<-Poverty[Sex=="Female"] + + p1<-ggplot(PovertyM,aes(Age,Needed_Calorie_W))+geom_density(stat="identity") + p2<-ggplot(PovertyM,aes(Age,Cal_W_Edited))+geom_density(stat="identity") + grid.arrange(p1,p2,nrow=3) + + p1<-ggplot(PovertyF,aes(Age,Needed_Calorie_W))+geom_density(stat="identity") + p2<-ggplot(PovertyF,aes(Age,Cal_W_Edited))+geom_density(stat="identity") + grid.arrange(p1,p2,nrow=3) + + p1<-ggplot(PovertyM,aes(Age,Needed_Calorie_B))+geom_density(stat="identity") + p2<-ggplot(PovertyM,aes(Age,Cal_W_Edited))+geom_density(stat="identity") + grid.arrange(p1,p2,nrow=3) + + p1<-ggplot(PovertyF,aes(Age,Needed_Calorie_B))+geom_density(stat="identity") + p2<-ggplot(PovertyF,aes(Age,Cal_W_Edited))+geom_density(stat="identity") + grid.arrange(p1,p2,nrow=3) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/172- Step 2.R b/R/Archive/November 2019/172- Step 2.R new file mode 100644 index 00000000..c3b9f800 --- /dev/null +++ b/R/Archive/November 2019/172- Step 2.R @@ -0,0 +1,137 @@ +#172- Step 2.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Calculationg Equal size calorie =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN1.rda")) + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + + #MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all.x = TRUE) + MD<-MD[Size!=0 & OriginalFoodExpenditure!=0 & !is.na(FoodKCaloriesHH)] + #MD[,Home_Per_Metr:=MetrPrice/EqSizeOECD] + + #Calculate Per Values + MD[,EqSizeCalory3 :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + + MD[,EqSizeCalory := + NAge1B *(Settings$ KCaloryNeed_B1 /Calorie_Need_WorldBank)+ + NAge2B *(Settings$ KCaloryNeed_B2 /Calorie_Need_WorldBank)+ + NAge3B *(Settings$ KCaloryNeed_B3 /Calorie_Need_WorldBank)+ + NAge4B *(Settings$ KCaloryNeed_B4 /Calorie_Need_WorldBank)+ + NAge5B *(Settings$ KCaloryNeed_B5 /Calorie_Need_WorldBank)+ + NAge6B *(Settings$ KCaloryNeed_B6 /Calorie_Need_WorldBank)+ + NAge7B *(Settings$ KCaloryNeed_B7 /Calorie_Need_WorldBank)+ + NAge8B *(Settings$ KCaloryNeed_B8 /Calorie_Need_WorldBank)+ + NAge9B *(Settings$ KCaloryNeed_B9 /Calorie_Need_WorldBank)+ + NAge10B*(Settings$ KCaloryNeed_B10 /Calorie_Need_WorldBank)+ + NAge1G *(Settings$ KCaloryNeed_G1 /Calorie_Need_WorldBank)+ + NAge2G *(Settings$ KCaloryNeed_G2 /Calorie_Need_WorldBank)+ + NAge3G *(Settings$ KCaloryNeed_G3 /Calorie_Need_WorldBank)+ + NAge4G *(Settings$ KCaloryNeed_G4 /Calorie_Need_WorldBank)+ + NAge5G *(Settings$ KCaloryNeed_G5 /Calorie_Need_WorldBank)+ + NAge6G *(Settings$ KCaloryNeed_G6 /Calorie_Need_WorldBank)+ + NAge7G *(Settings$ KCaloryNeed_G7 /Calorie_Need_WorldBank)+ + NAge8G *(Settings$ KCaloryNeed_G8 /Calorie_Need_WorldBank)+ + NAge9G *(Settings$ KCaloryNeed_G9 /Calorie_Need_WorldBank)+ + NAge10G*(Settings$ KCaloryNeed_G10 /Calorie_Need_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_WorldBank)] + + MD[,EqSizeCalory2 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Calorie_Need_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Calorie_Need_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Calorie_Need_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Calorie_Need_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Calorie_Need_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Calorie_Need_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Calorie_Need_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Calorie_Need_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Calorie_Need_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Calorie_Need_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Calorie_Need_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Calorie_Need_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Calorie_Need_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Calorie_Need_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Calorie_Need_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Calorie_Need_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Calorie_Need_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Calorie_Need_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_Anstitoo)] + + MD[,EqSizeCalory4 := + NAge1B*(Settings$KCaloryNeed_B1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2B*(Settings$KCaloryNeed_B2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3B*(Settings$KCaloryNeed_B3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4B*(Settings$KCaloryNeed_B4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5B*(Settings$KCaloryNeed_B5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6B*(Settings$KCaloryNeed_B6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7B*(Settings$KCaloryNeed_B7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8B*(Settings$KCaloryNeed_B8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9B*(Settings$KCaloryNeed_B9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10B*(Settings$KCaloryNeed_B10/Settings$KCaloryNeed_Adult_WorldBank)+ + NAge1G*(Settings$KCaloryNeed_G1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2G*(Settings$KCaloryNeed_G2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3G*(Settings$KCaloryNeed_G3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4G*(Settings$KCaloryNeed_G4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5G*(Settings$KCaloryNeed_G5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6G*(Settings$KCaloryNeed_G6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7G*(Settings$KCaloryNeed_G7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8G*(Settings$KCaloryNeed_G8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9G*(Settings$KCaloryNeed_G9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10G*(Settings$KCaloryNeed_G10/Settings$KCaloryNeed_Adult_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_WorldBank)] + + MD[,EqSizeCalory5 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Settings$KCaloryNeed_Adult_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_Anstitoo)] + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN2.rda")) + + MD[,weighted.mean(EqSizeCalory,Weight)] + MD[,weighted.mean(EqSizeCalory2,Weight)] + MD[,weighted.mean(EqSizeCalory4,Weight)] + MD[,weighted.mean(EqSizeCalory5,Weight)] + MD[,weighted.mean(EqSizeCalory3,Weight)] +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/50-Merge4CBN.R b/R/Archive/November 2019/50-Merge4CBN.R new file mode 100644 index 00000000..ab77f4e0 --- /dev/null +++ b/R/Archive/November 2019/50-Merge4CBN.R @@ -0,0 +1,261 @@ +#50-Merge Data for CBN Method.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + #cat(paste0("\n------------------------------\nYear:",year,"\n")) + + #load Demos+FoodPrices+Weights + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"lactating.rda")) + HHBase<-merge(HHBase,lactating,by="HHID") + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Calorie_Need.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFoodPrice.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights>-HHWeights[,HHID:=as.numeric(HHID)] + HHWeights[,Year:=NULL] + + + + #load Expenditures + + for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Energy", "Furnitures","Hotels", + "House", "Medicals","Behdashts","Transportations","Others", + "Resturants","Barghs" + #,"Benzins","Gazs","NaftSefids" + )){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + } + + # load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Added_Food.rda")) + + #load Calories + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + FData[,Region:=NULL] + #for (col in c("FoodKCaloriesHH")) FData[is.na(get(col)), (col) := 0] + FData <- FData[FoodKCaloriesHH>0] + + #merge groups + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + FData[,Size:=NULL] + MD<-merge(MD,FData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,HHWeights ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodData,by =c("HHID"),all=TRUE) + # MD<-merge(MD,Added_Food,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelData,by =c("HHID"),all=TRUE) + MD<-merge(MD,BehdashtData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BenzinData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,GazData,by =c("HHID"),all=TRUE) + MD<-merge(MD,BarghData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,NaftSefidData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,DurableData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ResturantData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,InvestmentData,by =c("HHID"),all=TRUE) + for (col in c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "EducExpenditure", "Energy_Exp", + "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", "Transportation_Exp", + "Other_Exp", "ServiceExp", "Medical_Exp", "Durable_Exp", + "Resturant_Exp","Bargh_Exp" + #,"Benzin_Exp","Gaz_Exp","NaftSefid_Exp" + )) + MD[is.na(get(col)), (col) := 0] +# MD<-MD[,Yaraneh:=416000*Size] + + MD<-merge(MD,Calorie_Need) + + #Calculate Monthly Total Expenditures + nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "Energy_Exp", "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", + "Transportation_Exp", "Other_Exp", "ServiceExp") + w <- c(nw, "Medical_Exp", "Durable_Exp") + # pw <- c(nw, "Added_Food_Exp_Month") + #Lw <- c(pw, "Medical_Exp", "Durable_Exp") + + MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + # MD[, Total_Exp_Month := Total_Exp_Month + Yaraneh] + # MD[, Total_Exp_Month_nondurable := Total_Exp_Month_nondurable + Yaraneh] + + # MD[, Total_Exp_Month := Total_Exp_Month*1.2] + # MD[, Total_Exp_Month_nondurable := Total_Exp_Month_nondurable*1.2] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + + #MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all.x = TRUE) + MD<-MD[Size!=0 & OriginalFoodExpenditure!=0 & !is.na(FoodKCaloriesHH)] + #MD[,Home_Per_Metr:=MetrPrice/EqSizeOECD] + + #Calculate Per Values + MD[,EqSizeCalory3 :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + + MD[,EqSizeCalory2 := + NAge1B*(Settings$KCaloryNeed_B1/Calorie_Need_WorldBank) + + NAge2B*(Settings$KCaloryNeed_B2/Calorie_Need_WorldBank) + + NAge3B*(Settings$KCaloryNeed_B3/Calorie_Need_WorldBank) + + NAge4B*(Settings$KCaloryNeed_B4/Calorie_Need_WorldBank) + + NAge5B*(Settings$KCaloryNeed_B5/Calorie_Need_WorldBank) + + NAge6B*(Settings$KCaloryNeed_B6/Calorie_Need_WorldBank) + + NAge7B*(Settings$KCaloryNeed_B7/Calorie_Need_WorldBank) + + NAge8B*(Settings$KCaloryNeed_B8/Calorie_Need_WorldBank) + + NAge9B*(Settings$KCaloryNeed_B9/Calorie_Need_WorldBank) + + NAge10B*(Settings$KCaloryNeed_B10/Calorie_Need_WorldBank)+ + NAge1G*(Settings$KCaloryNeed_G1/Calorie_Need_WorldBank) + + NAge2G*(Settings$KCaloryNeed_G2/Calorie_Need_WorldBank) + + NAge3G*(Settings$KCaloryNeed_G3/Calorie_Need_WorldBank) + + NAge4G*(Settings$KCaloryNeed_G4/Calorie_Need_WorldBank) + + NAge5G*(Settings$KCaloryNeed_G5/Calorie_Need_WorldBank) + + NAge6G*(Settings$KCaloryNeed_G6/Calorie_Need_WorldBank) + + NAge7G*(Settings$KCaloryNeed_G7/Calorie_Need_WorldBank) + + NAge8G*(Settings$KCaloryNeed_G8/Calorie_Need_WorldBank) + + NAge9G*(Settings$KCaloryNeed_G9/Calorie_Need_WorldBank) + + NAge10G*(Settings$KCaloryNeed_G10/Calorie_Need_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_WorldBank)] + + MD[,EqSizeCalory := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Calorie_Need_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Calorie_Need_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Calorie_Need_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Calorie_Need_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Calorie_Need_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Calorie_Need_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Calorie_Need_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Calorie_Need_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Calorie_Need_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Calorie_Need_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Calorie_Need_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Calorie_Need_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Calorie_Need_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Calorie_Need_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Calorie_Need_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Calorie_Need_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Calorie_Need_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Calorie_Need_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Calorie_Need_Anstitoo)] + + MD[,EqSizeCalory4 := + NAge1B*(Settings$KCaloryNeed_B1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2B*(Settings$KCaloryNeed_B2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3B*(Settings$KCaloryNeed_B3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4B*(Settings$KCaloryNeed_B4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5B*(Settings$KCaloryNeed_B5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6B*(Settings$KCaloryNeed_B6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7B*(Settings$KCaloryNeed_B7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8B*(Settings$KCaloryNeed_B8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9B*(Settings$KCaloryNeed_B9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10B*(Settings$KCaloryNeed_B10/Settings$KCaloryNeed_Adult_WorldBank)+ + NAge1G*(Settings$KCaloryNeed_G1/Settings$KCaloryNeed_Adult_WorldBank) + + NAge2G*(Settings$KCaloryNeed_G2/Settings$KCaloryNeed_Adult_WorldBank) + + NAge3G*(Settings$KCaloryNeed_G3/Settings$KCaloryNeed_Adult_WorldBank) + + NAge4G*(Settings$KCaloryNeed_G4/Settings$KCaloryNeed_Adult_WorldBank) + + NAge5G*(Settings$KCaloryNeed_G5/Settings$KCaloryNeed_Adult_WorldBank) + + NAge6G*(Settings$KCaloryNeed_G6/Settings$KCaloryNeed_Adult_WorldBank) + + NAge7G*(Settings$KCaloryNeed_G7/Settings$KCaloryNeed_Adult_WorldBank) + + NAge8G*(Settings$KCaloryNeed_G8/Settings$KCaloryNeed_Adult_WorldBank) + + NAge9G*(Settings$KCaloryNeed_G9/Settings$KCaloryNeed_Adult_WorldBank) + + NAge10G*(Settings$KCaloryNeed_G10/Settings$KCaloryNeed_Adult_WorldBank)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_WorldBank)] + + MD[,EqSizeCalory5 := + NAge1_A_B*(Settings$KCaloryNeed_A_B1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_B*(Settings$KCaloryNeed_A_B2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_B*(Settings$KCaloryNeed_A_B3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_B*(Settings$KCaloryNeed_A_B4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_B*(Settings$KCaloryNeed_A_B5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_B*(Settings$KCaloryNeed_A_B6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_B*(Settings$KCaloryNeed_A_B7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_B*(Settings$KCaloryNeed_A_B8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_B*(Settings$KCaloryNeed_A_B9/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge1_A_G*(Settings$KCaloryNeed_A_G1/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge2_A_G*(Settings$KCaloryNeed_A_G2/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge3_A_G*(Settings$KCaloryNeed_A_G3/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge4_A_G*(Settings$KCaloryNeed_A_G4/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge5_A_G*(Settings$KCaloryNeed_A_G5/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge6_A_G*(Settings$KCaloryNeed_A_G6/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge7_A_G*(Settings$KCaloryNeed_A_G7/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge8_A_G*(Settings$KCaloryNeed_A_G8/Settings$KCaloryNeed_Adult_Anstitoo) + + NAge9_A_G*(Settings$KCaloryNeed_A_G9/Settings$KCaloryNeed_Adult_Anstitoo)+ + lactating*(Settings$KCaloryNeed_lactating/Settings$KCaloryNeed_Adult_Anstitoo)] + + MD[,Relative_Calorie1 :=FoodKCaloriesHH/Calorie_Need1] + MD[,Relative_Calorie2 :=FoodKCaloriesHH/Calorie_Need2] + MD[,OriginalFoodExpenditure_Per :=OriginalFoodExpenditure/EqSizeCalory] + MD[,FoodKCaloriesHH_Per:=FoodKCaloriesHH/EqSizeCalory] + MD[,FoodProtein_Per:=FoodProteinHH/EqSizeCalory] + + #Calculate per_Calory from resturants + MD[,Calory_Price:=(OriginalFoodExpenditure_Per/FoodKCaloriesHH_Per)] + MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)][order(Calory_Price)] + MD[,ResturantKCalories:=(Settings$OutFoodKCXShare*Resturant_Exp)/Calory_Price_Area] + for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] + MD[,TFoodKCaloriesHH:=FoodKCaloriesHH+ResturantKCalories] + MD[,TOriginalFoodExpenditure:=OriginalFoodExpenditure+(Settings$OutFoodKCXShare*Resturant_Exp)] + + MD[,TOriginalFoodExpenditure_Per :=TOriginalFoodExpenditure/EqSizeCalory] + MD[,TFoodKCaloriesHH_Per:=TFoodKCaloriesHH/EqSizeCalory] + + ############################################################## + #####for CV EV report + # MD[, Total_Exp_Month2 := Reduce(`+`, .SD), .SDcols=Lw] + # MD[, Total_Exp_Month_nondurable2 := Reduce(`+`, .SD), .SDcols=pw] + + # MD[,Total_Exp_Month_Per2:=Total_Exp_Month2/EqSizeOECD] + # MD[,Total_Exp_Month_Per_nondurable2:=Total_Exp_Month_nondurable2/EqSizeOECD] + +# MD[,FoodExpenditure_Per2 :=(FoodExpenditure+Added_Food_Exp_Month)/EqSizeCalory] +# MD[,TFoodExpenditure2:=FoodExpenditure+Added_Food_Exp_Month+(Settings$OutFoodKCXShare*Resturant_Exp)] + # MD[,TFoodExpenditure_Per2 :=TFoodExpenditure2/EqSizeCalory] + ############################################################## + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) + + # cat(MD[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight*Size)],"\n") + # cat(MD[,weighted.mean(Size,Weight)],"\n") + #cat(MD[,weighted.mean(EqSizeCalory,Weight)],"\n") + #cat(MD[,weighted.mean(EqSizeCalory2,Weight)],"\n") + #cat(MD[,weighted.mean(EqSizeCalory4,Weight)],"\n") + #cat(MD[,weighted.mean(EqSizeCalory5,Weight)],"\n") + + cat(MD[Region=="Urban",weighted.mean(MetrPrice,Weight,na.rm = TRUE)],"\n") + + MD[,weighted.mean(Bargh_Exp,Weight),by=.(ProvinceCode)] + MD[,weighted.median(Bargh_Exp,Weight),by=.(ProvinceCode)] +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/51-FindInitialPoor.R b/R/Archive/November 2019/51-FindInitialPoor.R new file mode 100644 index 00000000..3ce60d7f --- /dev/null +++ b/R/Archive/November 2019/51-FindInitialPoor.R @@ -0,0 +1,165 @@ +#51-FindInitialPoor.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +#library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region,NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_Anstitoo, + Weight,MetrPrice,Size,EqSizeOECD,Relative_Calorie1,Relative_Calorie2)] + + #Choose one of these + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_Anstitoo/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_Anstitoo/TFoodKCaloriesHH_Per] + + + #SMD[,Bundle_Value2:=TOriginalFoodExpenditure_Per/Relative_Calorie1] + #SMD[,Bundle_Value1:=TOriginalFoodExpenditure_Per/Relative_Calorie2] + #SMD <- MD[,.(HHID,Region,NewArea,Total_Exp_Month_Per_nondurable, + #FoodExpenditure_Per,FoodKCalories_Per, Weight,MetrPrice)] + + #SMD[,Bundle_Value:=FoodExpenditure_Per*Settings$KCaloryNeed_Adult/FoodKCalories_Per] + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea)] + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + FirstSMD<-SMD[,.(HHID,Region,NewArea,NewArea_Name,Percentile,Decile)] + FirstSMD<-FirstSMD[,Realfirstpoor:=ifelse(Decile %in% 1:2,1,0)] + save(FirstSMD, file=paste0(Settings$HEISProcessedPath,"Y",year,"FirstSMD.rda")) + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=30 & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + Index <- SMDIterationPoor[,.(PriceIndex= (weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2)/2) + ,by=.(Region,NewArea)] + + SMD[,PriceIndex:=NULL] + SMD<- SMD[order(Region,NewArea)] + SMD <- merge(SMD,Index,by=c("Region","NewArea")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + } + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + #Calculate per_Calory from resturants + #MD[,Calory_Price:=(FoodExpenditure_Per/FoodKCalories_Per)] + #MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)][order(Calory_Price)] + #MD[,ResturantKCalories:=ifelse(Decile %in% 1:2,(Settings$OutFoodKCXShare12*Resturant_Exp)/Calory_Price_Area, + # ifelse(Decile %in% 3:6,(Settings$OutFoodKCXShare3456*Resturant_Exp)/Calory_Price_Area, + # (Settings$OutFoodKCXShare78910*Resturant_Exp)/Calory_Price_Area))] + #for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] + #MD[,TFoodKCalories:=FoodKCalories+ResturantKCalories] + #MD[,TFoodExpenditure:=FoodExpenditure+(Settings$OutFoodKCXShare*Resturant_Exp)] + #MD[,TFoodExpenditure:=FoodExpenditure+ifelse(Decile %in% 1:2,(Settings$OutFoodKCXShare12*Resturant_Exp), + # ifelse(Decile %in% 3:6,(Settings$OutFoodKCXShare3456*Resturant_Exp), + # (Settings$OutFoodKCXShare78910*Resturant_Exp)))] + + #MD[,TFoodExpenditure_Per :=TFoodExpenditure/EqSizeCalory] + #MD[,TFoodKCalories_Per:=TFoodKCalories/EqSizeCalory] + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea,Region)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD2<-MD[,.(HHID,Region,NewArea,InitialPoor,Percentile,Weight)] + MDU<-MD2[Region=="Urban"] + MDR<-MD2[Region=="Rural"] + save(MDU,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor2.rda")) + save(MDR,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor3.rda")) + + # MD[,weighted.mean(Bargh_Exp,Weight),by=.(Decile)][order(Decile)] + #MD[,weighted.median(Bargh_Exp,Weight),by=.(Decile)][order(Decile)] + + # MD[,weighted.mean(Bargh_Exp,Weight),by=.(ProvinceCode)][order(ProvinceCode)] + #MD[,weighted.median(Bargh_Exp,Weight),by=.(ProvinceCode)][order(ProvinceCode)] + } + +#MD[,Benzin_Exp:=as.numeric(Benzin_Exp)] +#MD2<-MD[,.(HHID,HIndivNo,Region,NewArea_Name,Decile,Percentile,Size,Weight,Total_Exp_Month_Per_nondurable,Benzin_Exp)] +#MD2<-MD2[,Add_Benzin_Exp:=Benzin_Exp-600000] +#MD2<-MD2[,Add_Benzin_Exp:=ifelse(Add_Benzin_Exp<0,0,Add_Benzin_Exp)] +#MD2<-MD2[,Extra_Benzin:=ifelse(Add_Benzin_Exp>0,1,0)] +#MD2<-MD2[,Benzin_Positive:=ifelse(Benzin_Exp>0,1,0)] + +#MD2<-MD2[,Decile_Add:=weighted.mean(Add_Benzin_Exp,Weight)*sum(Weight),by=.(Decile)] +#MD2[,weighted.mean(Add_Benzin_Exp,Weight)*sum(Weight),by=.(Decile)][order(Decile)] + +#MD2<-MD2[,Decile_Total:=weighted.mean(Benzin_Exp,Weight)*sum(Weight),by=.(Decile)] +#MD2[,weighted.mean(Benzin_Exp,Weight)*sum(Weight),by=.(Decile)][order(Decile)] + +#MD2<-MD2[,Ratio:=Decile_Add/Decile_Total] +#MD2[,weighted.mean(Ratio,Weight),by=.(Decile)][order(Decile)] + +#MD2<-MD2[,Ratio2:=weighted.mean(Extra_Benzin,Weight),by=.(Decile)] +#MD2[,weighted.mean(Extra_Benzin,Weight),by=.(Decile)][order(Decile)] + +#MD2<-MD2[Benzin_Positive==1,Ratio3:=weighted.mean(Extra_Benzin/HIndivNo,Weight),by=.(Decile)] +#MD2[Benzin_Positive==1,weighted.mean(Extra_Benzin/HIndivNo,Weight),by=.(Decile)][order(Decile)] + +#MD2<-MD2[,Ratio4:=weighted.mean(Benzin_Positive,Weight),by=.(Decile)] +#MD2[,weighted.mean(Benzin_Positive,Weight),by=.(Decile)][order(Decile)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/53-Personal Poverty line for provinces (other).R b/R/Archive/November 2019/53-Personal Poverty line for provinces (other).R new file mode 100644 index 00000000..b72314f7 --- /dev/null +++ b/R/Archive/November 2019/53-Personal Poverty line for provinces (other).R @@ -0,0 +1,130 @@ +# 53-Personal Poverty line for provinces.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Personal Pline =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"MD4test.rda")) + +MDH <- TD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine] + + +PPH <- MDH[ ,.(.N,PPLine=weighted.mean(PersonalPLine,Weight), + FPLine=mean(FPLine),EngelPersonal=mean(EngelPersonal)),by=.(Region,NewArea_Name)] + +if (year==90) { + PPH90<-PPH[,PPLine9096:=PPLine*1.305*1.347*1.156*1.119*1.09*1.096] + save(PPH90,file="PPH90.rda") +} + +if (year==91) { + PPH91<-PPH[,PPLine9196:=PPLine*1.347*1.156*1.119*1.09*1.096] + save(PPH91,file="PPH91.rda") +} + +if (year==92) { + PPH92<-PPH[,PPLine9296:=PPLine*1.156*1.119*1.09*1.096] + save(PPH92,file="PPH92.rda") +} + +if (year==93) { + PPH93<-PPH[,PPLine9396:=PPLine*1.119*1.09*1.096] + save(PPH93,file="PPH93.rda") +} + +if (year==94) { + PPH94<-PPH[,PPLine9496:=PPLine*1.09*1.096] + save(PPH94,file="PPH94.rda") +} + +if (year==95) { + PPH95<-PPH[,PPLine9596:=PPLine*1.096] + save(PPH95,file="PPH95.rda") +} + +if (year==96) { + load(file="PPH95.rda" ) + load(file="PPH94.rda" ) + load(file="PPH93.rda" ) + load(file="PPH92.rda" ) + load(file="PPH91.rda" ) + load(file="PPH90.rda" ) + PPH96<-PPH[,PPLine9696:=PPLine] + save(PPH96,file="PPH96.rda") + PPH96[,N:=NULL] + PPH96[,EngelPersonal:=NULL] + PPH96[,FPLine:=NULL] + PPH96[,PPLine:=NULL] + PPH<-merge(PPH96,PPH95,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH94,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH93,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH92,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH91,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH90,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH[is.na(PPH)] <- 0 + w <- c( "PPLine9696", "PPLine9596", + "PPLine9496", "PPLine9396", + "PPLine9296", "PPLine9196", + "PPLine9096") + + PPH[, PPLineSum := Reduce(`+`, .SD), .SDcols=w] + PPH[, PPLineMean :=ifelse((NewArea_Name=="Chaharmahal" & Region=="Rural") | + (NewArea_Name=="Khorasan_Jonoobi" & Region=="Rural"), + PPLineSum/6,ifelse(NewArea_Name=="Khorasan_Jonoobi" & Region=="Urban", + PPLineSum/5,PPLineSum/7))] + + + y2<-PPH[Region=="Urban",.(PPLineMean,NewArea_Name)] + y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$PPLineMean)]) + ggplot(y2, aes(x = y2$NewArea, y = y2$PPLineMean)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + x2<-PPH[Region=="Rural",.(PPLineMean,NewArea_Name)] + x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$PPLineMean)]) + ggplot(x2, aes(x = x2$NewArea, y = x2$PPLineMean)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +} +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/55-Manipulated Clustering(90-96).R b/R/Archive/November 2019/55-Manipulated Clustering(90-96).R new file mode 100644 index 00000000..1866a8bb --- /dev/null +++ b/R/Archive/November 2019/55-Manipulated Clustering(90-96).R @@ -0,0 +1,122 @@ +#55-Manipulated Clustering(93-96).R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +library(dplyr) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +cat(paste0("\n------------------------------\nYear:",Settings$baseyear,"\n")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"InitialPoor.rda")) +#load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"BigFoodPrice.rda")) +#MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all=TRUE) + +#####Clustering##### +dt2Urban<-MD[Region=="Urban",.(NewArea,NewArea_Name,Region,HHID)] +dt2Rural<-MD[Region=="Rural",.(NewArea,NewArea_Name,Region,HHID)] + +#####Urban##### +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Tehran",cluster3:=1] + +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Shiraz" | NewArea_Name=="Sh_Esfahan" | + NewArea_Name=="Sh_Bandarabas" | + NewArea_Name=="Sh_Karaj" | + NewArea_Name=="Sh_Rasht", + cluster3:=2] + +dt2Urban<-dt2Urban[NewArea_Name=="Gilan" | NewArea_Name=="Alborz" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Ghazvin" | + NewArea_Name=="Markazi" | NewArea_Name=="Esfahan" | + NewArea_Name=="Ghom" | NewArea_Name=="Sh_Arak" | + NewArea_Name=="Tehran" | NewArea_Name=="Sh_Tabriz" | + NewArea_Name=="Mazandaran" | NewArea_Name=="Sh_Yazd" , + cluster3:=3] + +dt2Urban<-dt2Urban[ NewArea_Name=="Yazd" | + NewArea_Name=="Sh_Kerman" | + NewArea_Name=="Sh_Hamedan" | + NewArea_Name=="Chaharmahal" | + NewArea_Name=="Zanjan" | NewArea_Name=="Hamedan" | + NewArea_Name=="Sh_Mashhad" | NewArea_Name=="Sh_Urmia" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Hormozgan"| + NewArea_Name=="Booshehr" | + NewArea_Name=="Semnan" | NewArea_Name=="Fars", + cluster3:=4] + +dt2Urban<-dt2Urban[ NewArea_Name=="Sh_Kermanshah" | NewArea_Name== "Az_Sharghi" | + NewArea_Name=="Kerman" | + NewArea_Name=="Ardebil" | + NewArea_Name=="Ilam" , + cluster3:=5] + +dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" | NewArea_Name=="Kordestan" | + NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Kermanshah" | NewArea_Name=="Lorestan" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Golestan", + cluster3:=6] + +dt2Urban<-dt2Urban[NewArea_Name=="Sistan" | NewArea_Name=="Sh_Zahedan", + cluster3:=7] + +save(dt2Urban,file ="dt2Urban.rda") +#####Rural##### +dt2Rural<-dt2Rural[ NewArea_Name=="Tehran" | NewArea_Name=="Alborz", + cluster3:=1] + +dt2Rural<-dt2Rural[NewArea_Name=="Esfahan" | NewArea_Name=="Mazandaran" , + cluster3:=2] + +dt2Rural<-dt2Rural[ NewArea_Name=="Ghazvin" | NewArea_Name=="Yazd" | + NewArea_Name=="Gilan" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Booshehr", + cluster3:=3] + +dt2Rural<-dt2Rural[ NewArea_Name=="Zanjan" | + NewArea_Name=="Chaharmahal"| NewArea_Name=="Hormozgan" | NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Ghom" | + NewArea_Name=="Fars" | + NewArea_Name=="Markazi" | NewArea_Name=="Semnan", + cluster3:=4] + +dt2Rural<-dt2Rural[ NewArea_Name=="Hamedan" | + NewArea_Name=="Az_Gharbi" | NewArea_Name=="Kermanshah" | + NewArea_Name=="Kerman" | NewArea_Name=="Golestan" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Lorestan" | + NewArea_Name=="Kordestan"| + NewArea_Name=="Khoozestan" | + NewArea_Name=="Ardebil" | NewArea_Name=="Ilam", + cluster3:=5] + +dt2Rural<-dt2Rural[ NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Sistan" , + cluster3:=6] + +save(dt2Rural,file ="dt2Rural.rda") +#####Merge##### +dt2total<-rbind(dt2Urban,dt2Rural) + + +dt2total[,HHID:=NULL] +dt2total<-distinct(dt2total) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/56-FoodBasicNeeds.R b/R/Archive/November 2019/56-FoodBasicNeeds.R new file mode 100644 index 00000000..56d0070d --- /dev/null +++ b/R/Archive/November 2019/56-FoodBasicNeeds.R @@ -0,0 +1,68 @@ +#54-FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + + #Determine Food (Equal 2100 KCal) Bundle + #MDPoors<-MD[InitialPoor==1] + MD[,NewPoor:=InitialPoor] + #MD[,NewPoor:=ifelse(Decile %in% c(1,2,3,4),1,0)] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>5 & i <=15){ + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(cluster3,Region)] + MD <- merge(MD,MDP,by=c("Region","cluster3")) +# print(MDP) + x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TOriginalFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + MD <- MD[,.(HHID,HIndivNo,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex, + HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice, + Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + OriginalFoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + Total_Exp_Month_Per,TFoodKCaloriesHH_Per,TOriginalFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + UrbanFinalfood<-MDFinalfood[Region=="Urban"] + RuralFinalfood<-MDFinalfood[Region=="Rural"] + save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/57-PovertyLines.R b/R/Archive/November 2019/57-PovertyLines.R new file mode 100644 index 00000000..8835bfd3 --- /dev/null +++ b/R/Archive/November 2019/57-PovertyLines.R @@ -0,0 +1,90 @@ +# 57-PovertyLines.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + + EngleD <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + MD <- MD[,PEngel:=TOriginalFoodExpenditure/Total_Exp_Month] + MD2 <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine] + MD2 <- MD2[,PEngel:=TOriginalFoodExpenditure/Total_Exp_Month] + MD2U <- MD2[Region=="Urban"] + MD2R <- MD2[Region=="Rural"] + + #En3es acc6rd5ng to N + # EngleS <- MD[ TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine, + # .(.N), by=.(Region,cluster3)] +# EngleS<-EngleS[,S:=ifelse(N>400,N,0)] +# MD<-merge(MD, EngleS) + # EngleD <- MD[S==0 & TOriginalFoodExpenditure_Per>0.7*FPLine & TOriginalFoodExpenditure_Per<1.3*FPLine, + # .(.N,Engel=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight), + # FPLine=mean(FPLine)),by=.(Region,cluster3)] + # EngleS <- MD[S==0 & TOriginalFoodExpenditure_Per>0.7*FPLine & TOriginalFoodExpenditure_Per<1.3*FPLine, + # .(.N), by=.(Region,cluster3)] + # load(file="EngleX.rda") + + + + #EngleD<-merge(EngleD,EngleX,by=c("Region","cluster3")) + EngleD[,PovertyLine:=FPLine/Engel] + EngleD[,PovertyLine2:=5580259] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,PovertyLine2,Engel)],by=c("Region","cluster3")) + + + #MD<-MD[Region=="Urban"] + + + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + MD[,FinalPoor2:=ifelse(Total_Exp_Month_Per < PovertyLine2,1,0 )] + cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight*Size)],"\t", + # MD[,weighted.mean(PovertyLine2,Weight*Size)],"\t", + MD[,weighted.mean(Engel,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) + + MD[FinalPoor==1,weighted.mean(TFoodKCaloriesHH_Per,Weight)] + MD[FinalPoor==1,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region)] + MD[FinalPoor==1,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=.(Region,cluster3)] + + #MD[,crw:=sum(Size*Weight),by=Region] + #MD[,sum((Size*Weight)/crw),by=.(Region,Decile)][order(Region,Decile)] + #MD[,weighted.mean(HIndivNo,Weight)*sum(Weight),by=.(Region,Decile)][order(Region,Decile)] + + MD[FinalPoor==1,weighted.mean(TFoodKCaloriesHH_Per,Weight),by=c("ProvinceCode")][order(ProvinceCode)] + + + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("ProvinceCode")][order(ProvinceCode)] + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","cluster3")][order(Region,cluster3)] + MD[,weighted.mean(FinalPoor2,Weight*Size),by=c("Region")] + MD[,weighted.mean(FinalPoor2,Weight*Size)] + MD3<-MD[,.(HHID,FinalPoor,Weight)] + save(MD3,file=paste0(Settings$HEISProcessedPath,"Y",year,"PoorsforMerge.rda")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + # write.csv(EngleD,file ="Results.csv" ) + } + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/60-Merge4CBN.R b/R/Archive/November 2019/60-Merge4CBN.R new file mode 100644 index 00000000..b36f2ebd --- /dev/null +++ b/R/Archive/November 2019/60-Merge4CBN.R @@ -0,0 +1,136 @@ +#60-Merge Data for CBN Method.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + #load Demos+FoodPrices+Weights + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFoodPrice.rda")) + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights[,Year:=NULL] + + + + #load Expenditures + + for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Energy", "Furnitures","Hotels", + "House", "Medicals","Behdashts","Transportations","Others", + "Resturants","Benzins")){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + } + + # load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Added_Food.rda")) + + #load Calories + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + FData[,Region:=NULL] + #for (col in c("FoodTKCalories")) FData[is.na(get(col)), (col) := 0] + FData <- FData[FoodTKCalories>0] + + #merge groups + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + FData[,Size:=NULL] + MD<-merge(MD,FData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,HHWeights ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodData,by =c("HHID"),all=TRUE) + # MD<-merge(MD,Added_Food,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelData,by =c("HHID"),all=TRUE) + MD<-merge(MD,BehdashtData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,BenzinData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + MD<-merge(MD,DurableData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ResturantData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,InvestmentData,by =c("HHID"),all=TRUE) + for (col in c("FoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "EducExpenditure", "Energy_Exp", + "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", "Transportation_Exp", + "Other_Exp", "ServiceExp", "Medical_Exp", "Durable_Exp", + "Resturant_Exp","Benzin_Exp")) + MD[is.na(get(col)), (col) := 0] +# MD<-MD[,Yaraneh:=416000*Size] + + #Calculate Monthly Total Expenditures + nw <- c("FoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "Energy_Exp", "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", + "Transportation_Exp", "Other_Exp", "ServiceExp") + w <- c(nw, "Medical_Exp", "Durable_Exp") + # pw <- c(nw, "Added_Food_Exp_Month") + #Lw <- c(pw, "Medical_Exp", "Durable_Exp") + + MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] + MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + + # MD[, Total_Exp_Month := Total_Exp_Month + Yaraneh] + # MD[, Total_Exp_Month_nondurable := Total_Exp_Month_nondurable + Yaraneh] + + # MD[, Total_Exp_Month := Total_Exp_Month*1.2] + # MD[, Total_Exp_Month_nondurable := Total_Exp_Month_nondurable*1.2] + + MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] + + + #MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all.x = TRUE) + MD<-MD[Size!=0 & FoodExpenditure!=0 & !is.na(FoodTKCalories)] + #MD[,Home_Per_Metr:=MetrPrice/EqSizeOECD] + + #Calculate Per Values + MD[,EqSizeCalory :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] + MD[,FoodExpenditure_Per :=FoodExpenditure/EqSizeCalory] + MD[,FoodTKCalories_Per:=FoodTKCalories/EqSizeCalory] + + #Calculate per_Calory from resturants + MD[,Calory_Price:=(FoodExpenditure_Per/FoodTKCalories_Per)] + MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)][order(Calory_Price)] + MD[,ResturantKCalories:=(Settings$OutFoodTKCXShare*Resturant_Exp)/Calory_Price_Area] + for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] + MD[,TFoodTKCalories:=FoodTKCalories+ResturantKCalories] + MD[,TFoodExpenditure:=FoodExpenditure+(Settings$OutFoodKCXShare*Resturant_Exp)] + + MD[,TFoodExpenditure_Per :=TFoodExpenditure/EqSizeCalory] + MD[,TFoodTKCalories_Per:=TFoodTKCalories/EqSizeCalory] + + ############################################################## + + + save(MD, file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) + cat(MD[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight*Size)]) + MD[Region=="Urban",weighted.mean(Total_Exp_Month_Per,Weight*Size),by=.(ProvinceCode)] +} + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/61-FindInitialPoor.R b/R/Archive/November 2019/61-FindInitialPoor.R new file mode 100644 index 00000000..343f0cd8 --- /dev/null +++ b/R/Archive/November 2019/61-FindInitialPoor.R @@ -0,0 +1,152 @@ +#61-FindInitialPoor.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +#library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) + + SMD <- MD[,.(HHID,Region,NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TFoodExpenditure_Per, + # Total_Exp_Month_Per_nondurable2,TFoodExpenditure_Per2, + TFoodTKCalories_Per, + Weight,MetrPrice,Size,EqSizeOECD)] + + SMD[,Bundle_Value:=TFoodExpenditure_Per*Settings$KCaloryNeed_Adult/TFoodTKCalories_Per] + + #SMD <- MD[,.(HHID,Region,NewArea,Total_Exp_Month_Per_nondurable,FoodExpenditure_Per,FoodTKCalories_Per, + # Weight,MetrPrice)] + + #SMD[,Bundle_Value:=FoodExpenditure_Per*Settings$KCaloryNeed_Adult/FoodTKCalories_Per] + + SMD <- SMD[Bundle_Value<=5000000 | TFoodTKCalories_Per>=300] + + #Real Prices + T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea)] + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight)/sum(Weight),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + + FirstSMD<-SMD[,.(HHID,Region,NewArea,NewArea_Name,Percentile,Decile)] + FirstSMD<-FirstSMD[,Realfirstpoor:=ifelse(Decile %in% 1:2,1,0)] + save(FirstSMD, file=paste0(Settings$HEISProcessedPath,"Y",year,"FirstSMD.rda")) + + SMD[,NewPoor:=1] + SMD[,ThisIterationPoor:=0] + i <- 0 + while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=30 & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + Index <- SMDIterationPoor[,.(PriceIndex= (weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2)/2) + ,by=.(Region,NewArea)] + + SMD[,PriceIndex:=NULL] + SMD<- SMD[order(Region,NewArea)] + SMD <- merge(SMD,Index,by=c("Region","NewArea")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight)/sum(Weight),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + save(SMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + + + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) + } + MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile)],by="HHID") + setnames(MD,"NewPoor","InitialPoor") + + #Calculate per_Calory from resturants + #MD[,Calory_Price:=(FoodExpenditure_Per/FoodTKCalories_Per)] + #MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)][order(Calory_Price)] + #MD[,ResturantKCalories:=ifelse(Decile %in% 1:2,(Settings$OutFoodTKCXShare12*Resturant_Exp)/Calory_Price_Area, + # ifelse(Decile %in% 3:6,(Settings$OutFoodTKCXShare3456*Resturant_Exp)/Calory_Price_Area, + # (Settings$OutFoodTKCXShare78910*Resturant_Exp)/Calory_Price_Area))] + #for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] + #MD[,TFoodTKCalories:=FoodTKCalories+ResturantKCalories] + #MD[,TFoodExpenditure:=FoodExpenditure+(Settings$OutFoodTKCXShare*Resturant_Exp)] + #MD[,TFoodExpenditure:=FoodExpenditure+ifelse(Decile %in% 1:2,(Settings$OutFoodTKCXShare12*Resturant_Exp), + # ifelse(Decile %in% 3:6,(Settings$OutFoodTKCXShare3456*Resturant_Exp), + # (Settings$OutFoodTKCXShare78910*Resturant_Exp)))] + + #MD[,TFoodExpenditure_Per :=TFoodExpenditure/EqSizeCalory] + #MD[,TFoodTKCalories_Per:=TFoodTKCalories/EqSizeCalory] + + MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea,Region)] + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD2<-MD[,.(HHID,Region,NewArea,InitialPoor,Percentile,Weight)] + MDU<-MD2[Region=="Urban"] + MDR<-MD2[Region=="Rural"] + save(MDU,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor2.rda")) + save(MDR,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor3.rda")) +} + +MD[,Benzin_Exp:=as.numeric(Benzin_Exp)] +MD2<-MD[,.(HHID,HIndivNo,Region,NewArea_Name,Decile,Percentile,Size,Weight,Total_Exp_Month_Per_nondurable,Benzin_Exp)] +MD2<-MD2[,Add_Benzin_Exp:=Benzin_Exp-600000] +MD2<-MD2[,Add_Benzin_Exp:=ifelse(Add_Benzin_Exp<0,0,Add_Benzin_Exp)] +MD2<-MD2[,Extra_Benzin:=ifelse(Add_Benzin_Exp>0,1,0)] +MD2<-MD2[,Benzin_Positive:=ifelse(Benzin_Exp>0,1,0)] + +MD2<-MD2[,Decile_Add:=weighted.mean(Add_Benzin_Exp,Weight)*sum(Weight),by=.(Decile)] +MD2[,weighted.mean(Add_Benzin_Exp,Weight)*sum(Weight),by=.(Decile)][order(Decile)] + +MD2<-MD2[,Decile_Total:=weighted.mean(Benzin_Exp,Weight)*sum(Weight),by=.(Decile)] +MD2[,weighted.mean(Benzin_Exp,Weight)*sum(Weight),by=.(Decile)][order(Decile)] + +MD2<-MD2[,Ratio:=Decile_Add/Decile_Total] +MD2[,weighted.mean(Ratio,Weight),by=.(Decile)][order(Decile)] + +MD2<-MD2[,Ratio2:=weighted.mean(Extra_Benzin,Weight),by=.(Decile)] +MD2[,weighted.mean(Extra_Benzin,Weight),by=.(Decile)][order(Decile)] + +MD2<-MD2[Benzin_Positive==1,Ratio3:=weighted.mean(Extra_Benzin/HIndivNo,Weight),by=.(Decile)] +MD2[Benzin_Positive==1,weighted.mean(Extra_Benzin/HIndivNo,Weight),by=.(Decile)][order(Decile)] + +MD2<-MD2[,Ratio4:=weighted.mean(Benzin_Positive,Weight),by=.(Decile)] +MD2[,weighted.mean(Benzin_Positive,Weight),by=.(Decile)][order(Decile)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/62-Poverty Line for Provinces.R b/R/Archive/November 2019/62-Poverty Line for Provinces.R new file mode 100644 index 00000000..c61ade06 --- /dev/null +++ b/R/Archive/November 2019/62-Poverty Line for Provinces.R @@ -0,0 +1,281 @@ +#62-Poverty Line for Provinces +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + + #Determine Food (Equal 2100 KCal) Bundle + MD[,NewPoor:=InitialPoor] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>5 & i <=15){ + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(NewArea,Region)] + MD <- merge(MD,MDP,by=c("Region","NewArea")) + + x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + MDFinalfood<-MD[,.(HHID,Region,NewArea,NewArea_Name,Percentile,FinalFoodPoor)] +} + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + + EngleD <- MD[TFoodExpenditure_Per<1.3*FPLine & TFoodExpenditure_Per>0.7*FPLine, + .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine),ProvinceCode=mean(ProvinceCode)),by=.(Region,NewArea_Name)] + EngleD[,PovertyLine:=FPLine/Engel] + + MD[,EngelPersonal:=TFoodExpenditure/Total_Exp_Month] + TD<-MD[,PersonalPLine:=FPLine/EngelPersonal] + save(TD,file = paste0(Settings$HEISProcessedPath,"Y",year,"MD4test.rda")) + + MD <- merge(MD,EngleD[,.(NewArea_Name,Region,PovertyLine,Engel)],by=c("Region","NewArea_Name")) + #MD<-MD[Region=="Urban" & NewArea==2301] + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight* Size)],"\t", + MD[,weighted.mean(Engel,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) + + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("ProvinceCode")][order(ProvinceCode)] + + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","NewArea_Name")][order(Region,NewArea_Name)] + #MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","cluster3")] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + y2<-EngleD[Region=="Urban",.(PovertyLine,NewArea_Name)] + y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$PovertyLine)]) + ggplot(y2, aes(x = y2$NewArea, y = y2$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + x2<-EngleD[Region=="Rural",.(PovertyLine,NewArea_Name)] + x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$PovertyLine)]) + ggplot(x2, aes(x = x2$NewArea, y = x2$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + load(file="Inflation9096.rda") + EngleD<-merge(EngleD,Inflation9096,by="ProvinceCode") + + if (year==90) { + EngleD90<-EngleD[,PovertyLine9096:=PovertyLine*y9091*y9192*y9293*y9394*y9495*y9596] + EngleD90[,y9091:=NULL] + EngleD90[,y9192:=NULL] + EngleD90[,y9293:=NULL] + EngleD90[,y9394:=NULL] + EngleD90[,y9495:=NULL] + EngleD90[,y9596:=NULL] + save(EngleD90,file="EngleD90.rda") + } + + if (year==91) { + EngleD91<-EngleD[,PovertyLine9196:=PovertyLine*y9192*y9293*y9394*y9495*y9596] + EngleD91[,y9091:=NULL] + EngleD91[,y9192:=NULL] + EngleD91[,y9293:=NULL] + EngleD91[,y9394:=NULL] + EngleD91[,y9495:=NULL] + EngleD91[,y9596:=NULL] + save(EngleD91,file="EngleD91.rda") + } + + if (year==92) { + EngleD92<-EngleD[,PovertyLine9296:=PovertyLine*y9293*y9394*y9495*y9596] + EngleD92[,y9091:=NULL] + EngleD92[,y9192:=NULL] + EngleD92[,y9293:=NULL] + EngleD92[,y9394:=NULL] + EngleD92[,y9495:=NULL] + EngleD92[,y9596:=NULL] + save(EngleD92,file="EngleD92.rda") + } + + if (year==93) { + EngleD93<-EngleD[,PovertyLine9396:=PovertyLine*y9394*y9495*y9596] + EngleD93[,y9091:=NULL] + EngleD93[,y9192:=NULL] + EngleD93[,y9293:=NULL] + EngleD93[,y9394:=NULL] + EngleD93[,y9495:=NULL] + EngleD93[,y9596:=NULL] + save(EngleD93,file="EngleD93.rda") + } + + if (year==94) { + EngleD94<-EngleD[,PovertyLine9496:=PovertyLine*y9495*y9596] + EngleD94[,y9091:=NULL] + EngleD94[,y9192:=NULL] + EngleD94[,y9293:=NULL] + EngleD94[,y9394:=NULL] + EngleD94[,y9495:=NULL] + EngleD94[,y9596:=NULL] + save(EngleD94,file="EngleD94.rda") + } + + if (year==95) { + EngleD95<-EngleD[,PovertyLine9596:=PovertyLine*y9596] + EngleD95[,y9091:=NULL] + EngleD95[,y9192:=NULL] + EngleD95[,y9293:=NULL] + EngleD95[,y9394:=NULL] + EngleD95[,y9495:=NULL] + EngleD95[,y9596:=NULL] + save(EngleD95,file="EngleD95.rda") + } + + if (year==96) { + load(file="EngleD95.rda" ) + load(file="EngleD94.rda" ) + load(file="EngleD93.rda" ) + load(file="EngleD92.rda" ) + load(file="EngleD91.rda" ) + load(file="EngleD90.rda" ) + EngleD96<-EngleD[,PovertyLine9696:=PovertyLine] + save(EngleD96,file="EngleD96.rda") + EngleD96[,N:=NULL] + EngleD96[,Engel:=NULL] + EngleD96[,FPLine:=NULL] + EngleD96[,PovertyLine:=NULL] + EngleD96[,ProvinceCode:=NULL] + EngleD<-merge(EngleD96,EngleD95,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD94,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD93,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD92,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD91,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091:=NULL] + EngleD[,y9192:=NULL] + EngleD[,y9293:=NULL] + EngleD[,y9394:=NULL] + EngleD[,y9495:=NULL] + EngleD[,y9596:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD<-merge(EngleD,EngleD90,by=c("Region","NewArea_Name"),all=TRUE) + EngleD[,y9091.x:=NULL] + EngleD[,y9192.x:=NULL] + EngleD[,y9293.x:=NULL] + EngleD[,y9394.x:=NULL] + EngleD[,y9495.x:=NULL] + EngleD[,y9091.y:=NULL] + EngleD[,y9192.y:=NULL] + EngleD[,y9293.y:=NULL] + EngleD[,y9394.y:=NULL] + EngleD[,y9495.y:=NULL] + EngleD[,N:=NULL] + EngleD[,Engel:=NULL] + EngleD[,FPLine:=NULL] + EngleD[,PovertyLine:=NULL] + EngleD[,ProvinceCode:=NULL] + EngleD[is.na(EngleD)] <- 0 + w <- c( "PovertyLine9696", "PovertyLine9596", + "PovertyLine9496", "PovertyLine9396", + "PovertyLine9296", "PovertyLine9196", + "PovertyLine9096") + + EngleD[, PovertyLineSum := Reduce(`+`, .SD), .SDcols=w] + EngleD[, PovertyLineMean :=ifelse((NewArea_Name=="Chaharmahal" & Region=="Rural") | + (NewArea_Name=="Khorasan_Jonoobi" & Region=="Rural"), + PovertyLineSum/6,ifelse(NewArea_Name=="Khorasan_Jonoobi" & Region=="Urban", + PovertyLineSum/5,PovertyLineSum/7))] + + + y2<-EngleD[Region=="Urban",.(PovertyLineMean,NewArea_Name)] + y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$PovertyLineMean)]) + ggplot(y2, aes(x = y2$NewArea, y = y2$PovertyLineMean)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + x2<-EngleD[Region=="Rural",.(PovertyLineMean,NewArea_Name)] + x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$PovertyLineMean)]) + ggplot(x2, aes(x = x2$NewArea, y = x2$PovertyLineMean)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + } + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/63-Personal Poverty line for provinces (other).R b/R/Archive/November 2019/63-Personal Poverty line for provinces (other).R new file mode 100644 index 00000000..b72314f7 --- /dev/null +++ b/R/Archive/November 2019/63-Personal Poverty line for provinces (other).R @@ -0,0 +1,130 @@ +# 53-Personal Poverty line for provinces.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Personal Pline =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"MD4test.rda")) + +MDH <- TD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine] + + +PPH <- MDH[ ,.(.N,PPLine=weighted.mean(PersonalPLine,Weight), + FPLine=mean(FPLine),EngelPersonal=mean(EngelPersonal)),by=.(Region,NewArea_Name)] + +if (year==90) { + PPH90<-PPH[,PPLine9096:=PPLine*1.305*1.347*1.156*1.119*1.09*1.096] + save(PPH90,file="PPH90.rda") +} + +if (year==91) { + PPH91<-PPH[,PPLine9196:=PPLine*1.347*1.156*1.119*1.09*1.096] + save(PPH91,file="PPH91.rda") +} + +if (year==92) { + PPH92<-PPH[,PPLine9296:=PPLine*1.156*1.119*1.09*1.096] + save(PPH92,file="PPH92.rda") +} + +if (year==93) { + PPH93<-PPH[,PPLine9396:=PPLine*1.119*1.09*1.096] + save(PPH93,file="PPH93.rda") +} + +if (year==94) { + PPH94<-PPH[,PPLine9496:=PPLine*1.09*1.096] + save(PPH94,file="PPH94.rda") +} + +if (year==95) { + PPH95<-PPH[,PPLine9596:=PPLine*1.096] + save(PPH95,file="PPH95.rda") +} + +if (year==96) { + load(file="PPH95.rda" ) + load(file="PPH94.rda" ) + load(file="PPH93.rda" ) + load(file="PPH92.rda" ) + load(file="PPH91.rda" ) + load(file="PPH90.rda" ) + PPH96<-PPH[,PPLine9696:=PPLine] + save(PPH96,file="PPH96.rda") + PPH96[,N:=NULL] + PPH96[,EngelPersonal:=NULL] + PPH96[,FPLine:=NULL] + PPH96[,PPLine:=NULL] + PPH<-merge(PPH96,PPH95,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH94,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH93,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH92,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH91,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH<-merge(PPH,PPH90,by=c("Region","NewArea_Name"),all=TRUE) + PPH[,N:=NULL] + PPH[,EngelPersonal:=NULL] + PPH[,FPLine:=NULL] + PPH[,PPLine:=NULL] + PPH[is.na(PPH)] <- 0 + w <- c( "PPLine9696", "PPLine9596", + "PPLine9496", "PPLine9396", + "PPLine9296", "PPLine9196", + "PPLine9096") + + PPH[, PPLineSum := Reduce(`+`, .SD), .SDcols=w] + PPH[, PPLineMean :=ifelse((NewArea_Name=="Chaharmahal" & Region=="Rural") | + (NewArea_Name=="Khorasan_Jonoobi" & Region=="Rural"), + PPLineSum/6,ifelse(NewArea_Name=="Khorasan_Jonoobi" & Region=="Urban", + PPLineSum/5,PPLineSum/7))] + + + y2<-PPH[Region=="Urban",.(PPLineMean,NewArea_Name)] + y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$PPLineMean)]) + ggplot(y2, aes(x = y2$NewArea, y = y2$PPLineMean)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + x2<-PPH[Region=="Rural",.(PPLineMean,NewArea_Name)] + x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$PPLineMean)]) + ggplot(x2, aes(x = x2$NewArea, y = x2$PPLineMean)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +} +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/64- TTests for PLines (other).R b/R/Archive/November 2019/64- TTests for PLines (other).R new file mode 100644 index 00000000..d33f2f95 --- /dev/null +++ b/R/Archive/November 2019/64- TTests for PLines (other).R @@ -0,0 +1,357 @@ +# 57-T-Test for PLines in Clusters.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ T-Tests =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(spatstat) + +year<-93 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"MD4test.rda")) + +MDH <- TD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine] + +############################################## +PPH <- MDH[ ,.(.N,PPLine=weighted.mean(PersonalPLine,Weight), + FPLine=mean(FPLine),EngelPersonal=mean(EngelPersonal)),by=.(Region,NewArea_Name)] + + +y2<-PPH[Region=="Urban",.(PPLine,NewArea_Name)] +y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$PPLine)]) +ggplot(y2, aes(x = y2$NewArea, y = y2$PPLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +x2<-PPH[Region=="Rural",.(PPLine,NewArea_Name)] +x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$PPLine)]) +ggplot(x2, aes(x = x2$NewArea, y = x2$PPLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +###############Urban############### +#####Cluster 2 +a<-MDH[Region=="Urban" & NewArea==707,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=707 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==1002,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=1002 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==3001,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=3001 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==2202,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=2202 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 8 +a<-MDH[Region=="Urban" & NewArea==30,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=30 & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea_Name=="Gilan",.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea_Name!="Gilan" & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 3 +a<-MDH[Region=="Urban" & NewArea==23,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=23 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Urban" & NewArea_Name=="Sh_Arak",.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea_Name!="Sh_Arak" & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==17,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=17 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==2,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=2 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Urban" & NewArea==916,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=916 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==303,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=303 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==25,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=25 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==808,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=808 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==603,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=603 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==0,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=0 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==22,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=22 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==21,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=21 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==7,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=7 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==26,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=26 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==10,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=10 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==13,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=13 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==20,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=20 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 4 +a<-MDH[Region=="Urban" & NewArea==3,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=3 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==8,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=8 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==19,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=19 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==12,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=12 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==18,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=18 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==24,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=24 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==14,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=14 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==9,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=9 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 5 +a<-MDH[Region=="Urban" & NewArea==6,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=6 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==16,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=16 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==29,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=29 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==4,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=4 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==401,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=401 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==15,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=15 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==5,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=5 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==502,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=502 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 6 +a<-MDH[Region=="Urban" & NewArea==28,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=28 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==27,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=27 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Urban" & NewArea==1105,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=1105 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +###############Rural############### +#####Cluster 1 +a<-MDH[Region=="Rural" & NewArea==30,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=30 & cluster3==1,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==23,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=23 & cluster3==1,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 2 +a<-MDH[Region=="Rural" & NewArea==2,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=2 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==10,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=10 & cluster3==2,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +###Cluster3 +a<-MDH[Region=="Rural" & NewArea==1,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=1 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Rural" & NewArea==21,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=21 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==17,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=17 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==18,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=18 & cluster3==3,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 4 +a<-MDH[Region=="Rural" & NewArea==22,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=22 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==3,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=3 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==7,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=7 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==25,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=25 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==26,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=26 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==20,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=20 & cluster3==4,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +#####Cluster 8 +a<-MDH[Region=="Rural" & NewArea==0,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=0 & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==19,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=19 & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==13,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=13 & cluster3==8,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 5 + +a<-MDH[Region=="Rural" & NewArea==6,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=6 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==12,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=12 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==14,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=14 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Rural" & NewArea==24,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=24 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==5,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=5 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==8,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=8 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==9,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=9 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +a<-MDH[Region=="Rural" & NewArea==27,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=27 & cluster3==5,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + +#####Cluster 6 +a<-MDH[Region=="Rural" & NewArea==4,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=4 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==15,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=15 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==16,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=16 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==28,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=28 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + +a<-MDH[Region=="Rural" & NewArea==29,.(PersonalPLine,cluster3,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=29 & cluster3==6,.(PersonalPLine,cluster3,NewArea_Name)] +t.test(a$PersonalPLine,b$PersonalPLine, var.equal=TRUE, paired=FALSE) + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/65-Manipulated Clustering(90-96).R b/R/Archive/November 2019/65-Manipulated Clustering(90-96).R new file mode 100644 index 00000000..886b848a --- /dev/null +++ b/R/Archive/November 2019/65-Manipulated Clustering(90-96).R @@ -0,0 +1,119 @@ +#65-Manipulated Clustering(93-96).R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +library(dplyr) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +cat(paste0("\n------------------------------\nYear:",Settings$baseyear,"\n")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"InitialPoor.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"BigFoodPrice.rda")) +MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all=TRUE) + +#####Clustering##### +dt2Urban<-MD[Region=="Urban",.(NewArea,NewArea_Name,Region,HHID)] +dt2Rural<-MD[Region=="Rural",.(NewArea,NewArea_Name,Region,HHID)] + +#####Urban##### +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Tehran",cluster3:=1] +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Shiraz" | NewArea_Name=="Sh_Esfahan" | + NewArea_Name=="Sh_Bandarabas" | + NewArea_Name=="Sh_Karaj" , + cluster3:=2] +dt2Urban<-dt2Urban[NewArea_Name=="Gilan" | NewArea_Name=="Alborz" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Sh_Rasht" , + cluster3:=3] +dt2Urban<-dt2Urban[NewArea_Name=="Mazandaran" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Tehran" | + NewArea_Name=="Yazd" | NewArea_Name=="Sh_Tabriz" | + NewArea_Name=="Sh_Mashhad" | NewArea_Name=="Ghom" | + NewArea_Name=="Sh_Kerman" | NewArea_Name=="Sh_Arak" | + NewArea_Name=="Sh_Yazd" | NewArea_Name=="Sh_Hamedan" | + NewArea_Name=="Chaharmahal" | + NewArea_Name=="Zanjan" | NewArea_Name=="Hamedan" | + NewArea_Name=="Sh_Mashhad" | NewArea_Name=="Sh_Urmia" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Hormozgan"| + NewArea_Name=="Booshehr" | + NewArea_Name=="Semnan" | NewArea_Name=="Fars", + cluster3:=4] +dt2Urban<-dt2Urban[ NewArea_Name=="Sh_Kermanshah" | NewArea_Name== "Az_Sharghi" | + NewArea_Name=="Kerman" | + NewArea_Name=="Ardebil" | + NewArea_Name=="Ilam" | NewArea_Name=="Lorestan", + cluster3:=5] +dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" | NewArea_Name=="Kordestan" | + NewArea_Name=="Ghazvin" | NewArea_Name=="Fars" | NewArea_Name=="Markazi" | + NewArea_Name=="Esfahan" , + cluster3:=4] +dt2Urban<-dt2Urban[NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Semnan" | NewArea_Name=="Hamedan" | + NewArea_Name=="Kerman" | NewArea_Name=="Zanjan" | + NewArea_Name=="Hormozgan"| + NewArea_Name=="Booshehr" | NewArea_Name=="Kordestan" | + NewArea_Name=="Ardebil" | NewArea_Name=="Chaharmahal" | + NewArea_Name=="Sh_Urmia", + cluster3:=5] +dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" |NewArea_Name=="Ilam" | + NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Kermanshah" | NewArea_Name=="Lorestan" | + NewArea_Name=="Sh_Kermanshah" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Golestan", + cluster3:=6] +dt2Urban<-dt2Urban[NewArea_Name=="Sistan" | NewArea_Name=="Sh_Zahedan", + cluster3:=7] +save(dt2Urban,file ="dt2Urban.rda") +#####Rural##### +dt2Rural<-dt2Rural[ NewArea_Name=="Tehran" | NewArea_Name=="Alborz", + cluster3:=1] +dt2Rural<-dt2Rural[NewArea_Name=="Esfahan" | NewArea_Name=="Mazandaran" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Booshehr", + cluster3:=2] +dt2Rural<-dt2Rural[ NewArea_Name=="Yazd" | + NewArea_Name=="Gilan" | NewArea_Name=="Zanjan" | + NewArea_Name=="Chaharmahal"| NewArea_Name=="Hormozgan" | NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Ghom" | + NewArea_Name=="Fars" | NewArea_Name=="Ghazvin" | + NewArea_Name=="Markazi" | NewArea_Name=="Semnan"| + NewArea_Name=="Ardebil" | NewArea_Name=="Ilam", + cluster3:=3] +dt2Rural<-dt2Rural[ NewArea_Name=="Hamedan" | + NewArea_Name=="Az_Gharbi" | NewArea_Name=="Kermanshah" | + NewArea_Name=="Kerman" | NewArea_Name=="Golestan" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Lorestan" | + NewArea_Name=="Kordestan"| + NewArea_Name=="Khoozestan", + cluster3:=4] +dt2Rural<-dt2Rural[ NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Sistan" , + cluster3:=5] + +save(dt2Rural,file ="dt2Rural.rda") +#####Merge##### +dt2total<-rbind(dt2Urban,dt2Rural) + + +dt2total[,HHID:=NULL] +dt2total<-distinct(dt2total) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/66-FoodBasicNeeds.R b/R/Archive/November 2019/66-FoodBasicNeeds.R new file mode 100644 index 00000000..68c4acc2 --- /dev/null +++ b/R/Archive/November 2019/66-FoodBasicNeeds.R @@ -0,0 +1,68 @@ +#54-FoodBasicNeeds.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + + #Determine Food (Equal 2100 KCal) Bundle + #MDPoors<-MD[InitialPoor==1] + MD[,NewPoor:=InitialPoor] + #MD[,NewPoor:=ifelse(Decile %in% c(1,2,3,4),1,0)] + MD[,OldPoor:=1] + + i <- 0 + while(MD[(NewPoor-OldPoor)!=0,.N]>5 & i <=15){ + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(cluster3,Region)] + MD <- merge(MD,MDP,by=c("Region","cluster3")) +# print(MDP) + x<-MD[,.(NewArea,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] + } + + MD[,FinalFoodPoor:=OldPoor] + + MD <- MD[,.(HHID,Region,NewArea,NewArea_Name,cluster3,ProvinceCode,Size,HAge,HSex, + HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice, + Total_Exp_Month_Per_nondurable,TFoodExpenditure_Per, + FoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + Total_Exp_Month_Per,TFoodTKCalories_Per,TFoodExpenditure,Total_Exp_Month, + # TFoodExpenditure2,Total_Exp_Month_nondurable2,Total_Exp_Month2, + # Total_Exp_Month_Per2, + EqSizeOECD,EqSizeCalory,Decile,Bundle_Value)] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + MDFinalfood<-MD[,.(HHID,Region,NewArea,cluster3,Percentile,FinalFoodPoor)] + UrbanFinalfood<-MDFinalfood[Region=="Urban"] + RuralFinalfood<-MDFinalfood[Region=="Rural"] + save(UrbanFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) + save(RuralFinalfood, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/67-PovertyLines.R b/R/Archive/November 2019/67-PovertyLines.R new file mode 100644 index 00000000..7c98c168 --- /dev/null +++ b/R/Archive/November 2019/67-PovertyLines.R @@ -0,0 +1,73 @@ +# 57-PovertyLines.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + + EngleD <- MD[ TFoodExpenditure_Per>0.7*FPLine & TFoodExpenditure_Per<1.3*FPLine, + .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + MD2 <- MD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine] + MD2 <- MD2[,PEngel:=TFoodExpenditure/Total_Exp_Month] + MD2U <- MD2[Region=="Urban"] + MD2R <- MD2[Region=="Rural"] + + #En3es acc6rd5ng to N + # EngleS <- MD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine, + # .(.N), by=.(Region,cluster3)] +# EngleS<-EngleS[,S:=ifelse(N>400,N,0)] +# MD<-merge(MD, EngleS) + # EngleD <- MD[S==0 & TFoodExpenditure_Per>0.7*FPLine & TFoodExpenditure_Per<1.3*FPLine, + # .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + # FPLine=mean(FPLine)),by=.(Region,cluster3)] + # EngleS <- MD[S==0 & TFoodExpenditure_Per>0.7*FPLine & TFoodExpenditure_Per<1.3*FPLine, + # .(.N), by=.(Region,cluster3)] + # load(file="EngleX.rda") + + + + #EngleD<-merge(EngleD,EngleX,by=c("Region","cluster3")) + EngleD[,PovertyLine:=FPLine/Engel] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engel)],by=c("Region","cluster3")) + + + MD<-MD[Region=="Urban"] + + + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight*Size)],"\t", + MD[,weighted.mean(Engel,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) + + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("ProvinceCode")][order(ProvinceCode)] + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","cluster3")][order(Region,cluster3)] + MD[,weighted.mean(FinalPoor,Weight),by=c("Region")] + MD3<-MD[,.(HHID,FinalPoor,Weight)] + save(MD3,file=paste0(Settings$HEISProcessedPath,"Y",year,"PoorsforMerge.rda")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/70- Poverty line Predictions (Fall 1397).R b/R/Archive/November 2019/70- Poverty line Predictions (Fall 1397).R new file mode 100644 index 00000000..93cb14b3 --- /dev/null +++ b/R/Archive/November 2019/70- Poverty line Predictions (Fall 1397).R @@ -0,0 +1,248 @@ +#56- Poverty line Predictions (Fall 1397) +# +# Copyright 2019: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(spatstat) + +year<-96 +cat(paste0("\n------------------------------\nYear:",year,"\n")) + +#load Demos+FoodPrices+Weights +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) +load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) +HHWeights<- as.data.table(HHWeights) +HHWeights[,Year:=NULL] + + +#load Expenditures + +for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Energy", "Furnitures","Hotels", + "House", "Medicals","Behdashts","Transportations","Others", + "Resturants")){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) +} + +#load Calories +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) +FData[,Region:=NULL] +#for (col in c("FoodKCalories")) FData[is.na(get(col)), (col) := 0] +FData <- FData[FoodKCalories>0] + +#merge groups +MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) +FData[,Size:=NULL] +MD<-merge(MD,FData ,by =c("HHID"),all=TRUE) +MD<-merge(MD,HHWeights ,by =c("HHID"),all=TRUE) +MD<-merge(MD,FoodData,by =c("HHID"),all=TRUE) +MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) +MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) +MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) +MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) +MD<-merge(MD,EducData,by =c("HHID"),all=TRUE) +MD<-merge(MD,EnergyData,by =c("HHID"),all=TRUE) +MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) +MD<-merge(MD,HotelData,by =c("HHID"),all=TRUE) +MD<-merge(MD,BehdashtData,by =c("HHID"),all=TRUE) +MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) +MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) +MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) +MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) +MD<-merge(MD,DurableData,by =c("HHID"),all=TRUE) +MD<-merge(MD,ResturantData,by =c("HHID"),all=TRUE) +#MD<-merge(MD,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "EducExpenditure", "Energy_Exp", + "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", "Transportation_Exp", + "Other_Exp", "ServiceExp", "Medical_Exp", "Durable_Exp", + "Resturant_Exp")) + MD[is.na(get(col)), (col) := 0] + +#Realize Expenditures +load(file="PriceIndex9697.rda") +MD<-merge(MD,PriceIndex9697,by =c("ProvinceCode"),all.x=TRUE) + +MD$FoodExpenditure<-MD$FoodExpenditure*MD$fall971food_index/MD$total961food_index +MD$Cigar_Exp<-MD$Cigar_Exp*MD$fall971cigar_index/MD$total961cigar_index +MD$Cloth_Exp<-MD$Cloth_Exp*MD$fall971cloth_index/MD$total961cloth_index +MD$Amusement_Exp<-MD$Amusement_Exp*MD$fall971amusement_index/MD$total961amusement_index +MD$Communication_Exp<-MD$Communication_Exp*MD$fall971communication_index/MD$total961communication_index +#MD$EducExpenditure<-MD$EducExpenditure*MD$fall971education_index/MD$total961education_index +MD$Energy_Exp<-MD$Energy_Exp*MD$fall971house_energy_index/MD$total961house_energy_index +MD$Furniture_Exp<-MD$Furniture_Exp*MD$fall971furniture_index/MD$total961furniture_index +MD$Hotel_Exp<-MD$Hotel_Exp*MD$fall971hotel_index/MD$total961hotel_index +MD$Behdasht_Exp<-MD$Behdasht_Exp*MD$fall971behdasht_index/MD$total961behdasht_index +MD$Transportation_Exp<-MD$Transportation_Exp*MD$fall971transportation_index/MD$total961transportation_index +MD$Other_Exp<-MD$Other_Exp*MD$fall971other_index/MD$total961other_index +MD$ServiceExp<-MD$ServiceExp*MD$fall971house_energy_index/MD$total961house_energy_index +MD$Medical_Exp<-MD$Medical_Exp*MD$fall971behdasht_index/MD$total961behdasht_index +MD$Durable_Exp<-MD$Durable_Exp*MD$azar97/MD$total96 +MD$Resturant_Exp<-MD$Resturant_Exp*MD$fall971hotel_index/MD$total961hotel_index + +#Calculate Monthly Total Expenditures +nw <- c("FoodExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", + "Energy_Exp", "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", + "Transportation_Exp", "Other_Exp", "ServiceExp") +w <- c(nw, "Medical_Exp", "Durable_Exp") + +MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] +MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + +MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] +MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] +MD<-MD[Size!=0 & FoodExpenditure!=0 & !is.na(FoodKCalories)] + +#Calculate Per Values +MD[,EqSizeCalory :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] +MD[,FoodExpenditure_Per :=FoodExpenditure/EqSizeCalory] +MD[,FoodKCalories_Per:=FoodKCalories/EqSizeCalory] + +#Calculate per_Calory from resturants +MD[,Calory_Price:=(FoodExpenditure_Per/FoodKCalories_Per)] +MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)][order(Calory_Price)] +MD[,ResturantKCalories:=(Settings$OutFoodKCXShare*Resturant_Exp)/Calory_Price_Area] +for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] +MD[,TFoodKCalories:=FoodKCalories+ResturantKCalories] +MD[,TFoodExpenditure:=FoodExpenditure+(Settings$OutFoodKCXShare*Resturant_Exp)] + +MD[,TFoodExpenditure_Per :=TFoodExpenditure/EqSizeCalory] +MD[,TFoodKCalories_Per:=TFoodKCalories/EqSizeCalory] + +SMD <- MD[,.(HHID,Region,NewArea,Total_Exp_Month_Per_nondurable,TFoodExpenditure_Per,TFoodKCalories_Per, + Weight,MetrPrice,Size,EqSizeOECD)] + +SMD[,Bundle_Value:=TFoodExpenditure_Per*Settings$KCaloryNeed_Adult/TFoodKCalories_Per] + +SMD <- SMD[Bundle_Value<=5000000 | TFoodKCalories_Per>=300] + +#Real Prices +T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] +TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + +SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea)] + +SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + +SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] +SMD[,crw:=cumsum(Weight)/sum(Weight),by=Region] # Cumulative Relative Weight + +#Calculate deciles by weights +SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] +SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + +FirstSMD<-SMD[,.(HHID,Region,NewArea,Percentile,Decile)] +FirstSMD<-FirstSMD[,Realfirstpoor:=ifelse(Decile %in% 1:2,1,0)] + +SMD[,NewPoor:=1] +SMD[,ThisIterationPoor:=0] +i <- 0 +while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=30 & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + Index <- SMDIterationPoor[,.(PriceIndex= (weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2)/2) + ,by=.(Region,NewArea)] + + SMD[,PriceIndex:=NULL] + SMD<- SMD[order(Region,NewArea)] + SMD <- merge(SMD,Index,by=c("Region","NewArea")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight)/sum(Weight),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + + + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) +} +MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile)],by="HHID") +setnames(MD,"NewPoor","InitialPoor") + +MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea,Region)] +save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + +load(file="dt2Urban.rda") +load(file="dt2Rural.rda") +dt2total<-rbind(dt2Urban,dt2Rural) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +dt2total <- dt2total[,lapply(.SD,sum),by=.(Region, NewArea,NewArea_Name,cluster3)] +dt2total[,HHID:=NULL] +MD<-merge(MD,dt2total,by=c("NewArea","Region","NewArea_Name"),all.x=TRUE) + +#Determine Food (Equal 2100 KCal) Bundle +MD[,NewPoor:=InitialPoor] +MD[,OldPoor:=1] + +i <- 0 +while(MD[(NewPoor-OldPoor)!=0,.N]>5 & i <=15){ + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(cluster3,Region)] + MD <- merge(MD,MDP,by=c("Region","cluster3")) + # print(MDP) + x<-MD[,.(cluster3,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] +} + +MD[,FinalFoodPoor:=OldPoor] +MD <- MD[,.(HHID,Region,NewArea,cluster3,ProvinceCode,Size,HAge,HSex, + HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice, + Total_Exp_Month_Per_nondurable,TFoodExpenditure_Per, + FoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + TFoodExpenditure,Total_Exp_Month_nondurable,Total_Exp_Month, + Total_Exp_Month_Per)] + +EngleD <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine, + .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] +EngleD[,PovertyLine:=FPLine/Engel] +MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engel)],by=c("Region","cluster3")) +MD<-MD[Region=="Rural" ] +MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] +cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight*Size)],"\t", + MD[,weighted.mean(Engel,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) +#MD[,weighted.mean(FinalPoor,Weight*Size),by=.(Region,NewArea)][order(V1)] +MD[,weighted.mean(FinalPoor,Weight),by=c("Region","cluster3")] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/71-PlotDataMaps.R b/R/Archive/November 2019/71-PlotDataMaps.R new file mode 100644 index 00000000..d7df4132 --- /dev/null +++ b/R/Archive/November 2019/71-PlotDataMaps.R @@ -0,0 +1,49 @@ +#Poverty Map +# +# Copyright © 2018:Majid Einian +# Licence: GPL-3 + rm(list=ls()) + +library(data.table) +library(readxl) +library(rworldmap) +library(rgdal) + + +Poverty <- data.table(read_excel("Data/Poverty.xlsx","Province")) # Data to be plotted, see the excell file + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(Poverty, # Joining the data to map + nameMap="ProvMap", + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "HCR95", + colourPalette = "heat", + mapTitle = paste0("Poverty Rate"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) diff --git a/R/Archive/November 2019/72-PovertyIndexes.R b/R/Archive/November 2019/72-PovertyIndexes.R new file mode 100644 index 00000000..0237a37a --- /dev/null +++ b/R/Archive/November 2019/72-PovertyIndexes.R @@ -0,0 +1,60 @@ +# 56-PovertyIndexes.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + #Head-Count Ratio Index + # cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + # MD[,weighted.mean(PovertyLine,Weight*Size)],"\t", + # MD[,weighted.mean(Engel,Weight*Size)],"\t", + # MD[,weighted.mean(FPLine,Weight*Size)]) + + #Intesnsity of Poverty (Poverty gap index) + MD[FinalPoor==1,Index:=1-(weighted.mean(Total_Exp_Month_Per_nondurable/PovertyLine, + Weight))] + MD[FinalPoor==1,weighted.mean(Index,Weight)] + + + #Poverty depth index (Foster-Greer-Thorbecke) + MD[FinalPoor==1,Index2:=(1-(weighted.mean(Total_Exp_Month_Per_nondurable/PovertyLine + ,Weight)))^2] + MD[FinalPoor==1,weighted.mean(Index2,Weight)] + + cat(MD[,weighted.mean(Index,Weight*Size,na.rm = TRUE)],"\t", + MD[,weighted.mean(Index2,Weight*Size,na.rm = TRUE)]) +} + + + #Intesnsity of Poverty (Poverty gap index) + MD[FinalPoor==1,Index:=1-(weighted.mean(Total_Exp_Month_Per_nondurable/PovertyLine, + Weight)),by=.(Region,cluster3)] + MD[FinalPoor==1,weighted.mean(Index,Weight),by=.(Region,cluster3)] + + + #Poverty depth index (Foster-Greer-Thorbecke) + MD[FinalPoor==1,Index2:=(1-(weighted.mean(Total_Exp_Month_Per_nondurable/PovertyLine + ,Weight)))^2,by=.(Region,cluster3)] + MD[FinalPoor==1,weighted.mean(Index2,Weight),by=.(Region,cluster3)] + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/73-Gini.R b/R/Archive/November 2019/73-Gini.R new file mode 100644 index 00000000..0b45c8f9 --- /dev/null +++ b/R/Archive/November 2019/73-Gini.R @@ -0,0 +1,56 @@ +#Gini Coefficient.R +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(acid) + +Gini <- data.table(Year=NA_integer_,Gini=NA_integer_,ProvinceCode=NA_integer_)[0] +Pop <- data.table(Year=NA_integer_,Pop=NA_integer_,ProvinceCode=NA_integer_)[0] + + +#year<-89 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + + m<-c(0:30) + for(p in m){ + print(MD[ProvinceCode==p,weighted.gini(Total_Exp_Month_Per,Weight)]) + print(MD[,weighted.gini(Total_Exp_Month_Per,Weight)]) +} + + X1 <- MD[,.(Gini=weighted.gini(Total_Exp_Month_Per,Weight))] + + X1[,Year:=year] + MD<-MD[!is.na(Weight)] + + #Gini <- rbind(Gini,X1) + Gini<-X1[,weighted.mean(as.numeric(Gini))] + + #X2 <- MD[,.(Pop=sum(Size*Weight)),by=ProvinceCode] + #X2[,Year:=year] + #Pop <- rbind(Pop,X2) + + #write.csv(Pop,file = "Pop.csv") +} + +#Final_Dataset <- read_excel("C:/Users/pc1/Desktop/MRC fall 98/Dataset/Final Dataset.xlsx", sheet = "Sheet4") +#Final_Dataset<-as.data.table(Final_Dataset) +#Final_Dataset2<-Final_Dataset[,weighted.mean(Woman_Contribution,Pop),by=.(Year)] + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/74-graph codes.R b/R/Archive/November 2019/74-graph codes.R new file mode 100644 index 00000000..dc6b8cf3 --- /dev/null +++ b/R/Archive/November 2019/74-graph codes.R @@ -0,0 +1,33 @@ +x <- MD$TFoodKCalories_Per +h<-hist(x, breaks=10, col="red", xlab="Miles TFoodKCalories_Per Gallon", + main="Histogram with Normal Curve") +xfit<-seq(min(x),max(x),length=40) +yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) +yfit <- yfit*diff(h$mids[1:2])*length(x) +lines(xfit, yfit, col="blue", lwd=2) + +plot(PEngel~TFoodKCalories_Per,data=MD2R) + +a<-X4$total +b<-X4$urban +c<-X4$rural +ts.plot(ts(a),ts(b),ts(c),gpars=list(xlab="year",ylab="HCR",lty=c(1:3)),col=1:4) + + +a<-X4$urban1 +b<-X4$urban2 +c<-X4$urban3 +d<-X4$urban4 +e<-X4$urban5 +f<-X4$urban6 +g<-X4$urban7 +ts.plot(ts(a),ts(b),ts(c),ts(d),ts(e),ts(f),ts(g),gpars=list(xlab="year",ylab="HCR",lty=c(1:3)),col=1:4) + +a<-X4$rural1 +b<-X4$rural2 +c<-X4$rural3 +d<-X4$rural4 +e<-X4$rural5 +ts.plot(ts(a),ts(b),ts(c),ts(d),ts(e),gpars=list(xlab="year",ylab="HCR",lty=c(1:3)),col=1:4) + + \ No newline at end of file diff --git a/R/Archive/November 2019/75-ActualPanel.R b/R/Archive/November 2019/75-ActualPanel.R new file mode 100644 index 00000000..c8142ab7 --- /dev/null +++ b/R/Archive/November 2019/75-ActualPanel.R @@ -0,0 +1,143 @@ +# 70-ActualPanel +# +# +# Copyright © 2018-2019: Majid Einian +# Licence: GPL-3 +# +rm(list = ls()) + +starttime <- proc.time() +cat("\n\n================ =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) + +year <- 92 + +load(paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) +load(paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +D92 <- merge(MD,IncomeTable,by="HHID", all.x=TRUE) +D92[is.na(WorkClass), WorkClass:="Rtr"] +D92 <- D92[,.(HHID,Region,Year,Quarter,Month,ProvinceCode,CountyCode,NewArea, + HEmployed,HUnemployed, + Weight,EqSizeOECD, + HBY=1300+Year-HAge, + CPI=70.916, + Total_Exp_Month,Total_Exp_Month_nondurable, + Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable, + NetIncome,WorkClass)] +rm(MD,IncomeTable) + +year <- 93 +load(paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) +load(paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +D93 <- merge(MD,IncomeTable,by="HHID", all.x=TRUE) +D93[is.na(WorkClass), WorkClass:="Rtr"] +D93 <- D93[,.(HHID,Region,Year,Quarter,Month,ProvinceCode,CountyCode,NewArea + ,HEmployed,HUnemployed + ,Weight,EqSizeOECD, + HBY=1300+Year-HAge, + CPI=81.948, + Total_Exp_Month,Total_Exp_Month_nondurable, + Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable, + NetIncome,WorkClass)] +rm(MD,IncomeTable) + +year <- 94 +load(paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) +load(paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +D94 <- merge(MD,IncomeTable,by="HHID", all.x=TRUE) +D94[is.na(WorkClass), WorkClass:="Rtr"] +D94 <- D94[,.(HHID,Region,Year,Quarter,Month,ProvinceCode,CountyCode,NewArea + ,HEmployed,HUnemployed + ,Weight,EqSizeOECD, + HBY=1300+Year-HAge, + CPI=91.714, + Total_Exp_Month,Total_Exp_Month_nondurable, + Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable, + NetIncome,WorkClass)] +rm(MD,IncomeTable) + +year <- 95 +load(paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) +load(paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +D95 <- merge(MD,IncomeTable,by="HHID", all.x=TRUE) +D95[is.na(WorkClass), WorkClass:="Rtr"] +D95 <- D95[,.(HHID,Region,Year,Quarter,Month,ProvinceCode,CountyCode,NewArea + ,HEmployed,HUnemployed + ,Weight,EqSizeOECD, + HBY=1300+Year-HAge, + CPI=100.000, + Total_Exp_Month,Total_Exp_Month_nondurable, + Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable, + NetIncome,WorkClass)] +rm(MD,IncomeTable) + +year <- 96 +load(paste0(Settings$HEISProcessedPath,"Y",year,"Total_Income.rda")) +load(paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +D96 <- merge(MD,IncomeTable,by="HHID", all.x=TRUE) +D96[is.na(WorkClass), WorkClass:="Rtr"] +D96 <- D96[,.(HHID,Region,Year,Quarter,Month,ProvinceCode,CountyCode,NewArea + ,HEmployed,HUnemployed + ,Weight,EqSizeOECD, + HBY=1300+Year-HAge, + CPI=109.650, + Total_Exp_Month,Total_Exp_Month_nondurable, + Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable, + NetIncome,WorkClass)] +rm(MD,IncomeTable) + + + +P23 <- merge(D92,D93,by="HHID",all = FALSE) +P34 <- merge(D93,D94,by="HHID",all = FALSE) +P45 <- merge(D94,D95,by="HHID",all = FALSE) +P56 <- merge(D95,D96,by="HHID",all = FALSE) + +P24 <- merge(D92,D94,by="HHID",all = FALSE) +P35 <- merge(D93,D95,by="HHID",all = FALSE) +P46 <- merge(D94,D96,by="HHID",all = FALSE) + +P234 <- merge(P23,D94,by="HHID",all = FALSE) +P345 <- merge(P34,D95,by="HHID",all = FALSE) +P456 <- merge(P45,D96,by="HHID",all = FALSE) + + +P <- P23 + +for(P in list(P23,P34,P45,P56)){ + P[NetIncome.x==0,NetIncome.x:=NA] + P[NetIncome.y==0,NetIncome.y:=NA] + P[,c0:=log(Total_Exp_Month_Per_nondurable.x/CPI.x*100)] + P[,c1:=log(Total_Exp_Month_Per_nondurable.y/CPI.y*100)] + P[,y0:=log(NetIncome.x/EqSizeOECD.x/CPI.x*100)] + P[,y1:=log(NetIncome.y/EqSizeOECD.y/CPI.y*100)] + #sd(P$y0,na.rm = TRUE) + #sd(P$y1,na.rm = TRUE) + print(cov.wt(P[!is.na(y0) & !is.na(y1),.(y0,y1)],wt = P[!is.na(y0) & !is.na(y1)]$Weight.x,cor = TRUE)$cor[2,1]) +} + table(P[,.(Region.x,Region.y)]) + summary(P[,Quarter.x-Quarter.y]) + summary(P[,Month.x-Month.y]) + table(P[,.(Month.x,Month.y)]) + table(P[,.(ProvinceCode.x-ProvinceCode.y)]) +# table(P[,.(HActivityState.x,HActivityState.y)]) + table(P[,.(WorkClass.x,WorkClass.y)]) +# table(P[,.(WorkClass.x,HActivityState.y)]) + + + + + + +L <- P[,.(sum(Weight.x,na.rm = TRUE),sum(Weight.y, na.rm = TRUE)),by=.(WorkClass.x,WorkClass.y)][order(WorkClass.x,WorkClass.y)] +L[,sh.x:=V1/sum(V1)*100] +L[,sh.y:=V2/sum(V2)*100] +library(reshape2) +acast(L,WorkClass.x~WorkClass.y,value.var = "sh.x") + + diff --git a/R/Archive/November 2019/76-Another approach of Poverty line (Fall 1397).R b/R/Archive/November 2019/76-Another approach of Poverty line (Fall 1397).R new file mode 100644 index 00000000..f83aee38 --- /dev/null +++ b/R/Archive/November 2019/76-Another approach of Poverty line (Fall 1397).R @@ -0,0 +1,251 @@ +# Another approach of Poverty line (Fall 1397) +# +# Copyright 2019: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Merge Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(spatstat) + +year<-96 +cat(paste0("\n------------------------------\nYear:",year,"\n")) + +#load Demos+FoodPrices+Weights +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHI.rda")) +load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) +HHWeights<- as.data.table(HHWeights) +HHWeights[,Year:=NULL] + + +#load Expenditures + +for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Energy", "Furnitures","Hotels", + "House", "Medicals","Behdashts","Transportations","Others", + "Resturants")){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) +} + +#load Calories +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) +FData[,Region:=NULL] +#for (col in c("FoodKCalories")) FData[is.na(get(col)), (col) := 0] +FData <- FData[FoodKCalories>0] + +#merge groups +MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) +FData[,Size:=NULL] +MD<-merge(MD,FData ,by =c("HHID"),all=TRUE) +MD<-merge(MD,HHWeights ,by =c("HHID"),all=TRUE) +MD<-merge(MD,FoodData,by =c("HHID"),all=TRUE) +MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) +MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) +MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) +MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) +MD<-merge(MD,EducData,by =c("HHID"),all=TRUE) +MD<-merge(MD,EnergyData,by =c("HHID"),all=TRUE) +MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) +MD<-merge(MD,HotelData,by =c("HHID"),all=TRUE) +MD<-merge(MD,BehdashtData,by =c("HHID"),all=TRUE) +MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) +MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) +MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) +MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) +MD<-merge(MD,DurableData,by =c("HHID"),all=TRUE) +MD<-merge(MD,ResturantData,by =c("HHID"),all=TRUE) +#MD<-merge(MD,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "EducExpenditure", "Energy_Exp", + "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", "Transportation_Exp", + "Other_Exp", "ServiceExp", "Medical_Exp", "Durable_Exp", + "Resturant_Exp")) + MD[is.na(get(col)), (col) := 0] + +#Realize Expenditures +load(file="PriceIndex9697.rda") +MD<-merge(MD,PriceIndex9697,by =c("ProvinceCode"),all.x=TRUE) + +MD$FoodExpenditure<-MD$FoodExpenditure*1.2 +MD$Cigar_Exp<-MD$Cigar_Exp*1.2 +MD$Cloth_Exp<-MD$Cloth_Exp*1.2 +MD$Amusement_Exp<-MD$Amusement_Exp*1.2 +MD$Communication_Exp<-MD$Communication_Exp*1.2 +MD$EducExpenditure<-MD$EducExpenditure*1.2 +MD$Energy_Exp<-MD$Energy_Exp*1.2 +MD$Furniture_Exp<-MD$Furniture_Exp*1.2 +MD$Hotel_Exp<-MD$Hotel_Exp*1.2 +MD$Behdasht_Exp<-MD$Behdasht_Exp*1.2 +MD$Transportation_Exp<-MD$Transportation_Exp*1.2 +MD$Other_Exp<-MD$Other_Exp*1.2 +MD$ServiceExp<-MD$ServiceExp*1.2 +MD$Medical_Exp<-MD$Medical_Exp*1.2 +MD$Durable_Exp<-MD$Durable_Exp*1.2 +MD$Resturant_Exp<-MD$Resturant_Exp*1.2 + + +#Calculate Monthly Total Expenditures +nw <- c("FoodExpenditure", "Cigar_Exp", "Cloth_Exp", + "Amusement_Exp", "Communication_Exp", "EducExpenditure", + "Energy_Exp", "Furniture_Exp", "Hotel_Exp", "Behdasht_Exp", + "Transportation_Exp", "Other_Exp", "ServiceExp") +w <- c(nw, "Medical_Exp", "Durable_Exp") + +MD[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=w] +MD[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=nw] + +MD[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] +MD[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] +MD<-MD[Size!=0 & FoodExpenditure!=0 & !is.na(FoodKCalories)] + +#Calculate Per Values +MD[,EqSizeCalory :=(Size-NKids) + NKids*(Settings$KCaloryNeed_Child/Settings$KCaloryNeed_Adult)] +MD[,FoodExpenditure_Per :=FoodExpenditure/EqSizeCalory] +MD[,FoodKCalories_Per:=FoodKCalories/EqSizeCalory] + +#Calculate per_Calory from resturants +MD[,Calory_Price:=(FoodExpenditure_Per/FoodKCalories_Per)] +MD[,Calory_Price_Area:=weighted.median(Calory_Price,Weight,na.rm = TRUE),by=.(Region,NewArea)][order(Calory_Price)] +MD[,ResturantKCalories:=(Settings$OutFoodKCXShare*Resturant_Exp)/Calory_Price_Area] +for (col in c("ResturantKCalories")) MD[is.na(get(col)), (col) := 0] +MD[,TFoodKCalories:=FoodKCalories+ResturantKCalories] +MD[,TFoodExpenditure:=FoodExpenditure+(Settings$OutFoodKCXShare*Resturant_Exp)] + +MD[,TFoodExpenditure_Per :=TFoodExpenditure/EqSizeCalory] +MD[,TFoodKCalories_Per:=TFoodKCalories/EqSizeCalory] + +SMD <- MD[,.(HHID,Region,NewArea,Total_Exp_Month_Per_nondurable,TFoodExpenditure_Per,TFoodKCalories_Per, + Weight,MetrPrice,Size,EqSizeOECD)] + +SMD[,Bundle_Value:=TFoodExpenditure_Per*Settings$KCaloryNeed_Adult/TFoodKCalories_Per] + +SMD <- SMD[Bundle_Value<=5000000 | TFoodKCalories_Per>=300] + +#Real Prices +T_Bundle_Value <- SMD[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] +TBV1 <- T_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +TBV2 <- T_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + +SMD[,PriceIndex:=(weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TBV1 + +weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TBV2)/2 + ,by=.(Region,NewArea)] + +SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + +SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] +SMD[,crw:=cumsum(Weight)/sum(Weight),by=Region] # Cumulative Relative Weight + +#Calculate deciles by weights +SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] +SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + +FirstSMD<-SMD[,.(HHID,Region,NewArea,Percentile,Decile)] +FirstSMD<-FirstSMD[,Realfirstpoor:=ifelse(Decile %in% 1:2,1,0)] + +SMD[,NewPoor:=1] +SMD[,ThisIterationPoor:=0] +i <- 0 +while(sum(SMD[,(ThisIterationPoor-NewPoor)^2])>=30 & i <=50){ + i <- i+1 + SMD[,pold:=Percentile] + SMD[,ThisIterationPoor:=ifelse(pold %in% Settings$InitialPoorPercentile,1,0)] + SMDIterationPoor<-SMD[ThisIterationPoor==TRUE] + + T_P_Bundle_Value <- SMDIterationPoor[NewArea==2301, .(Bundle_Value,MetrPrice,Weight)] + TPBV1 <- T_P_Bundle_Value[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] + TPBV2 <- T_P_Bundle_Value[,weighted.mean(MetrPrice,Weight,na.rm = TRUE)] + + Index <- SMDIterationPoor[,.(PriceIndex= (weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/TPBV1+ + weighted.mean(MetrPrice,Weight,na.rm = TRUE)/TPBV2)/2) + ,by=.(Region,NewArea)] + + SMD[,PriceIndex:=NULL] + SMD<- SMD[order(Region,NewArea)] + SMD <- merge(SMD,Index,by=c("Region","NewArea")) + + SMD[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + + SMD<- SMD[order(Region,Total_Exp_Month_Per_nondurable_Real)] + SMD[,crw:=cumsum(Weight)/sum(Weight),by=Region] # Cumulative Relative Weight + + #Calculate deciles by weights + SMD[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + SMD[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100),by=Region] + SMD[,NewPoor:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + + + cat("\n",sum(SMD[,(ThisIterationPoor-NewPoor)^2])) +} +MD <- merge(MD,SMD[,.(HHID,Bundle_Value,NewPoor,Decile,Percentile)],by="HHID") +setnames(MD,"NewPoor","InitialPoor") + +MD[,weighted.mean(InitialPoor,Weight), by=.(NewArea,Region)] +save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + +load(file="dtpastUrban.rda") +load(file="dtpastRural.rda") +dt2total<-rbind(dtpastUrban,dtpastRural) + +#load(file="dt2Urban.rda") +#load(file="dt2Rural.rda") +#dt2total<-rbind(dt2Urban,dt2Rural) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +MD<-merge(MD,dt2total,by=c("NewArea","Region"),all.x=TRUE) + +#Determine Food (Equal 2100 KCal) Bundle +MD[,NewPoor:=InitialPoor] +MD[,OldPoor:=1] + +i <- 0 +while(MD[(NewPoor-OldPoor)!=0,.N]>5 & i <=15){ + i <- i + 1 + MD[,ThisIterationPoor:=NewPoor] + MD[,FPLine:=NULL] + MDP <- MD[ThisIterationPoor==1, + .(FPLine=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)), + by=.(cluster,Region)] + MD <- merge(MD,MDP,by=c("Region","cluster")) + # print(MDP) + x<-MD[,.(cluster,Region,FPLine,InitialPoor)] + MD[,NewPoor:=ifelse(TFoodExpenditure_Per < FPLine,1,0)] + print(table(MD[,.(ThisIterationPoor,NewPoor)])) + MD[,OldPoor:=ThisIterationPoor] +} + +MD[,FinalFoodPoor:=OldPoor] +MD <- MD[,.(HHID,Region,NewArea,cluster,ProvinceCode,Size,HAge,HSex, + HLiterate,HEduLevel0,HActivityState,Area,Rooms,MetrPrice, + Total_Exp_Month_Per_nondurable,TFoodExpenditure_Per, + FoodExpenditure_Per,FPLine,Weight,Percentile,FinalFoodPoor, + TFoodExpenditure,Total_Exp_Month_nondurable,Total_Exp_Month, + Total_Exp_Month_Per)] + +load(file="Compare.rda") +MD <- merge(MD,Compare,by=c("Region","cluster")) +#MD<-MD[Region=="Rural"] +MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] +cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) +#MD[,weighted.mean(FinalPoor,Weight*Size),by=.(Region,NewArea)][order(V1)] +MD[,weighted.mean(FinalPoor,Weight)] +MD[,weighted.mean(FinalPoor,Weight),by=c("Region")] +MD[,weighted.mean(FinalPoor,Weight),by=c("Region","cluster")] +#Compare<-EngleD[,.(Region,cluster,PovertyLine)] +#MD<-merge(MD,Compare,by=c("Region","cluster")) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/77-Engle's Map.R b/R/Archive/November 2019/77-Engle's Map.R new file mode 100644 index 00000000..9d7ee49a --- /dev/null +++ b/R/Archive/November 2019/77-Engle's Map.R @@ -0,0 +1,63 @@ +#Engle's Map +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 +rm(list=ls()) + +library(data.table) +library(readxl) +library(rworldmap) +library(rgdal) + + +Engle <- data.table(read_excel("Data/Engle.xlsx","Province")) # Data to be plotted, see the excell file + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(Engle,nameMap="ProvMap", # Joining the data to map + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) +MapData2<-MapData + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +#Urban Areas +mapUrban <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "EngleUrban3", + colourPalette = "heat", + mapTitle = paste0("Engle Rate in Urban Areas"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapUrban + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) + + +#Rural Areas +mapRural <- rworldmap::mapPolys(MapData2, add = FALSE, nameColumnToPlot = "EngleRural3", + colourPalette = "heat", + mapTitle = paste0("Engle Rate in Rural Areas"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapRural + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) diff --git a/R/Archive/November 2019/80-Poor properties.R b/R/Archive/November 2019/80-Poor properties.R new file mode 100644 index 00000000..cd00f3d5 --- /dev/null +++ b/R/Archive/November 2019/80-Poor properties.R @@ -0,0 +1,427 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + #Load Data + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) + UNewFinalPoor<-NewFinalPoor[Region=="Urban"] + RNewFinalPoor<-NewFinalPoor[Region=="Rural"] + + #Add house properties + T95P2 <- read_dta("D:/R/T95P2.dta") + R95P2 <- read_dta("D:/R/R95P2.dta") + U95P2 <- read_dta("D:/R/U95P2.dta") + + CBN95<-merge(NewFinalPoor,T95P2,by =c("HHID"),all.x=TRUE) + CBN_Urban<-merge(UNewFinalPoor,U95P2,by =c("HHID"),all.x=TRUE) + CBN_Rural<-merge(RNewFinalPoor,R95P2,by =c("HHID"),all.x=TRUE) + + CBN_Poor95<-CBN95[FinalPoor==1] + CBN_Poor_Urban<-CBN_Urban[FinalPoor==1] + CBN_Poor_Rural<-CBN_Rural[FinalPoor==1] + + + CBN_NonPoor_Urban<-CBN_Urban[FinalPoor==0] + CBN_NonPoor_Rural<-CBN_Rural[FinalPoor==0] + CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + + +##### Age ##### +#Calculation +Age<-CBN_NonPoor95[,Age:=weighted.mean(HAge,Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Age,NewArea,Weight)] +Age1<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Age1[,Weight:=NULL] + +Age<-CBN_Poor95[,Poor_Age:=weighted.mean(HAge,Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Poor_Age,NewArea,Weight)] +Age2<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Age<-CBN_NonPoor95[,Poor_Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Poor_Age_40,NewArea,Weight)] +Age3<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Age<-CBN_NonPoor95[,Poor_Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Poor_Age_4050,NewArea,Weight)] +Age4<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Age<-CBN_NonPoor95[,Poor_Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Poor_Age_50,NewArea,Weight)] +Age5<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Age<-CBN_Poor95[,Poor_Age:=weighted.mean(HAge,Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Poor_Age,NewArea,Weight)] +Age2<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Age<-CBN_Poor95[,Poor_Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Poor_Age_40,NewArea,Weight)] +Age6<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Age<-CBN_Poor95[,Poor_Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Poor_Age_4050,NewArea,Weight)] +Age7<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Age<-CBN_Poor95[,Poor_Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=NewArea][order(NewArea)] +Age<-Age[,.(Poor_Age_50,NewArea,Weight)] +Age8<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +AgeT<-merge(Age1,Age2,by =c("NewArea"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age3,by =c("NewArea"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age4,by =c("NewArea"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age5,by =c("NewArea"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age6,by =c("NewArea"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age7,by =c("NewArea"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age8,by =c("NewArea"),all.x=TRUE) +AgeT[,Weight:=NULL] +write.xlsx(AgeT, "D:/R/Poors.xlsx",sheetName = "Age1") + + +Age<-CBN95[,Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=FinalPoor][order(FinalPoor)] +Age<-Age[,.(Age_40,FinalPoor,Weight)] +Age6<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Age6[,Weight:=NULL] + +Age<-CBN95[,Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=FinalPoor][order(FinalPoor)] +Age<-Age[,.(Age_4050,FinalPoor,Weight)] +Age7<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] + +Age<-CBN95[,Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=FinalPoor][order(FinalPoor)] +Age<-Age[,.(Age_50,FinalPoor,Weight)] +Age8<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] + +AgeT<-merge(Age6,Age7,by =c("FinalPoor"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age8,by =c("FinalPoor"),all.x=TRUE) +AgeT[,Weight:=NULL] +write.xlsx(AgeT, "D:/R/Poors.xlsx",sheetName = "Age2",append = TRUE) + + + +##### Sex ##### +Female<-CBN_NonPoor95[,Female_Poors:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=ProvinceCode][order(ProvinceCode)] +Female<-Female[,.(Female_Poors,NewArea,Weight)] +Female1<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Female1[,Weight:=NULL] + +Female<-CBN_Poor95[,Female:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=ProvinceCode][order(ProvinceCode)] +Female<-Female[,.(Female,NewArea,Weight)] +Female2<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Female1<-merge(Female1,Female2,by =c("NewArea"),all.x=TRUE) +Female1[,Weight:=NULL] +write.xlsx(Female1, "D:/R/Poors.xlsx",sheetName = "Female1",append = TRUE) + +Female<-CBN95[,Female:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Female<-Female[,.(Female,FinalPoor,Weight)] +Female3<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Female3[,Weight:=NULL] +write.xlsx(Female3, "D:/R/Poors.xlsx",sheetName = "Female2",append = TRUE) + +##### Size ##### +Size<-CBN_NonPoor95[,Size:=weighted.mean(Size,Weight),by=NewArea][order(NewArea)] +Size<-Size[,.(Size,NewArea,Weight)] +Size1<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Size1[,Weight:=NULL] + +Size<-CBN_Poor95[,Poor_Size:=weighted.mean(Size,Weight),by=NewArea][order(NewArea)] +Size<-Size[,.(Poor_Size,NewArea,Weight)] +Size2<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +SizeT<-merge(Size1,Size2,by =c("NewArea"),all.x=TRUE) +SizeT[,Weight:=NULL] +write.xlsx(SizeT, "D:/R/Poors.xlsx",sheetName = "Size1",append = TRUE) + +Size<-CBN95[,Size:=weighted.mean(Size,Weight),by=FinalPoor][order(FinalPoor)] +Size<-Size[,.(Size,FinalPoor,Weight)] +Size3<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Size3[,Weight:=NULL] +write.xlsx(Size3, "D:/R/Poors.xlsx",sheetName = "Size2",append = TRUE) + + + + +##### Literature ##### +Literate<-CBN_NonPoor95[,Literate_Poors:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=NewArea][order(NewArea)] +Literate<-Literate[,.(Literate_Poors,NewArea,Weight)] +Literate1<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Literate1[,Weight:=NULL] + +Literate<-CBN_Poor95[,Literate:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=NewArea][order(NewArea)] +Literate<-Literate[,.(Literate,NewArea,Weight)] +Literate2<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Literate1<-merge(Literate1,Literate2,by =c("NewArea"),all.x=TRUE) +Literate1[,Weight:=NULL] +write.xlsx(Literate1, "D:/R/Poors.xlsx",sheetName = "Literate1",append = TRUE) + +Literate<-CBN95[,Literate:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Literate<-Literate[,.(Literate,FinalPoor,Weight)] +Literate3<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Literate3[,Weight:=NULL] +write.xlsx(Literate3, "D:/R/Poors.xlsx",sheetName = "Literate2",append = TRUE) + + +##### Education ##### + +#Education<-CBN_NonPoor95[,Education_Poors1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1, +# ifelse(HEduLevel0 %in% "Elementary",2, +#ifelse(HEduLevel0 %in% "Middle",3, +#ifelse(HEduLevel0 %in% "High",4, +#ifelse(HEduLevel0 %in% "Pre",5, +#ifelse(HEduLevel0 %in% "University",6,0)))))),Weight),by=NewArea][order(NewArea)] + +Education<-CBN_NonPoor95[,Education_Poors1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors1,NewArea,Weight)] +Education1<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Education1[,Weight:=NULL] + +Education<-CBN_NonPoor95[,Education_Poors2:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors2,NewArea,Weight)] +Education2<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_NonPoor95[,Education_Poors3:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors3,NewArea,Weight)] +Education3<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_NonPoor95[,Education_Poors4:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors4,NewArea,Weight)] +Education4<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_NonPoor95[,Education_Poors5:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors5,NewArea,Weight)] +Education5<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_NonPoor95[,Education_Poors6:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors6,NewArea,Weight)] +Education6<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_Poor95[,Education_Poors7:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors7,NewArea,Weight)] +Education7<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Education7[,Weight:=NULL] + +Education<-CBN_Poor95[,Education_Poors8:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors8,NewArea,Weight)] +Education8<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_Poor95[,Education_Poors9:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors9,NewArea,Weight)] +Education9<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_Poor95[,Education_Poors10:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors10,NewArea,Weight)] +Education10<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_Poor95[,Education_Poors11:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors11,NewArea,Weight)] +Education11<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education<-CBN_Poor95[,Education_Poors12:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=NewArea][order(NewArea)] +Education<-Education[,.(Education_Poors12,NewArea,Weight)] +Education12<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Education1<-merge(Education1,Education2,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education3,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education4,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education5,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education6,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education7,by =c("NewArea"),all.x=TRUE) +Education1<-merge(Education1,Education8,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education9,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education10,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education11,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education12,by =c("NewArea"),all.x=TRUE) +Education1[,Weight:=NULL] +write.xlsx(Education1, "D:/R/Poors.xlsx",sheetName = "Education1",append = TRUE) + + +Education13<-CBN95[,Education1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Education13<-Education13[,.(Education1,FinalPoor,Weight)] +Education13<-Education13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Education13[,Weight:=NULL] + +Education14<-CBN95[,Education2:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Education14<-Education14[,.(Education2,FinalPoor,Weight)] +Education14<-Education14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Education14[,Weight:=NULL] + +Education15<-CBN95[,Education3:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Education15<-Education15[,.(Education3,FinalPoor,Weight)] +Education15<-Education15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Education15[,Weight:=NULL] + +Education16<-CBN95[,Education4:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Education16<-Education16[,.(Education4,FinalPoor,Weight)] +Education16<-Education16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Education16[,Weight:=NULL] + +Education17<-CBN95[,Education5:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Education17<-Education17[,.(Education5,FinalPoor,Weight)] +Education17<-Education17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Education17[,Weight:=NULL] + +Education18<-CBN95[,Education6:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Education18<-Education18[,.(Education6,FinalPoor,Weight)] +Education18<-Education18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Education18[,Weight:=NULL] + +Education2<-merge(Education13,Education14,by =c("FinalPoor"),all.x=TRUE) +Education2<-merge(Education2,Education15,by =c("FinalPoor"),all.x=TRUE) +Education2<-merge(Education2,Education16,by =c("FinalPoor"),all.x=TRUE) +Education2<-merge(Education2,Education17,by =c("FinalPoor"),all.x=TRUE) +Education2<-merge(Education2,Education18,by =c("FinalPoor"),all.x=TRUE) +write.xlsx(Education2, "D:/R/Poors.xlsx",sheetName = "Education2",append = TRUE) + + + +##### Activity ##### +Activity<-CBN_NonPoor95[,Activity_Poors1:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors1,NewArea,Weight)] +Activity1<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Activity1[,Weight:=NULL] + +Activity<-CBN_NonPoor95[,Activity_Poors2:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors2,NewArea,Weight)] +Activity2<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_NonPoor95[,Activity_Poors3:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors3,NewArea,Weight)] +Activity3<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_NonPoor95[,Activity_Poors4:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors4,NewArea,Weight)] +Activity4<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_NonPoor95[,Activity_Poors5:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors5,NewArea,Weight)] +Activity5<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_NonPoor95[,Activity_Poors6:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors6,NewArea,Weight)] +Activity6<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_Poor95[,Activity_Poors7:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors7,NewArea,Weight)] +Activity7<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Activity7[,Weight:=NULL] + +Activity<-CBN_Poor95[,Activity_Poors8:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors8,NewArea,Weight)] +Activity8<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_Poor95[,Activity_Poors9:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors9,NewArea,Weight)] +Activity9<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_Poor95[,Activity_Poors10:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors10,NewArea,Weight)] +Activity10<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_Poor95[,Activity_Poors11:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors11,NewArea,Weight)] +Activity11<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity<-CBN_Poor95[,Activity_Poors12:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=NewArea][order(NewArea)] +Activity<-Activity[,.(Activity_Poors12,NewArea,Weight)] +Activity12<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Activity1<-merge(Activity1,Activity2,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity3,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity4,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity5,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity6,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity7,by =c("NewArea"),all.x=TRUE) +Activity1<-merge(Activity1,Activity8,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity9,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity10,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity11,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity12,by =c("NewArea"),all.x=TRUE) +Activity1[,Weight:=NULL] +write.xlsx(Activity1, "D:/R/Poors.xlsx",sheetName = "Activity1",append = TRUE) + + +Activity13<-CBN95[,Activity1:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Activity13<-Activity13[,.(Activity1,FinalPoor,Weight)] +Activity13<-Activity13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Activity13[,Weight:=NULL] + +Activity14<-CBN95[,Activity2:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Activity14<-Activity14[,.(Activity2,FinalPoor,Weight)] +Activity14<-Activity14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Activity14[,Weight:=NULL] + +Activity15<-CBN95[,Activity3:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Activity15<-Activity15[,.(Activity3,FinalPoor,Weight)] +Activity15<-Activity15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Activity15[,Weight:=NULL] + +Activity16<-CBN95[,Activity4:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Activity16<-Activity16[,.(Activity4,FinalPoor,Weight)] +Activity16<-Activity16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Activity16[,Weight:=NULL] + +Activity17<-CBN95[,Activity5:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Activity17<-Activity17[,.(Activity5,FinalPoor,Weight)] +Activity17<-Activity17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Activity17[,Weight:=NULL] + +Activity18<-CBN95[,Activity6:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=FinalPoor][order(FinalPoor)] +Activity18<-Activity18[,.(Activity6,FinalPoor,Weight)] +Activity18<-Activity18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Activity18[,Weight:=NULL] + +Activity2<-merge(Activity13,Activity14,by =c("FinalPoor"),all.x=TRUE) +Activity2<-merge(Activity2,Activity15,by =c("FinalPoor"),all.x=TRUE) +Activity2<-merge(Activity2,Activity16,by =c("FinalPoor"),all.x=TRUE) +Activity2<-merge(Activity2,Activity17,by =c("FinalPoor"),all.x=TRUE) +Activity2<-merge(Activity2,Activity18,by =c("FinalPoor"),all.x=TRUE) +write.xlsx(Activity2, "D:/R/Poors.xlsx",sheetName = "Activity2",append = TRUE) + +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/81-Poor properties_Rural.R b/R/Archive/November 2019/81-Poor properties_Rural.R new file mode 100644 index 00000000..7520e999 --- /dev/null +++ b/R/Archive/November 2019/81-Poor properties_Rural.R @@ -0,0 +1,462 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +#Load Data +load(file=paste0(Settings$HEISProcessedPath,"CBN_Urban","95.rda")) +load(file=paste0(Settings$HEISProcessedPath,"CBN_Rural","95.rda")) +CBN95<-rbind(CBN_Urban,CBN_Rural) + +#Add house properties +T95P2 <- read_dta("D:/R/T95P2.dta") +R95P2 <- read_dta("D:/R/R95P2.dta") +U95P2 <- read_dta("D:/R/U95P2.dta") + +CBN95<-merge(CBN95,T95P2,by =c("HHID"),all.x=TRUE) +CBN_Urban<-merge(CBN_Urban,U95P2,by =c("HHID"),all.x=TRUE) +CBN_Rural<-merge(CBN_Rural,R95P2,by =c("HHID"),all.x=TRUE) + +load(file=paste0(Settings$HEISProcessedPath,"CBNPoor_Urban","95.rda")) +load(file=paste0(Settings$HEISProcessedPath,"CBNPoor_Rural","95.rda")) +CBN_Poor95<-rbind(CBNPoor_Urban,CBNPoor_Rural) + +CBN_Poor95<-merge(CBN_Poor95,T95P2,by =c("HHID"),all.x=TRUE) +CBNPoor_Urban<-merge(CBNPoor_Urban,U95P2,by =c("HHID"),all.x=TRUE) +CBNPoor_Rural<-merge(CBNPoor_Rural,R95P2,by =c("HHID"),all.x=TRUE) + + +CBN_NonPoor_Urban<-CBN_Urban[Poor11==0] +CBN_NonPoor_Rural<-CBN_Rural[Poor11==0] +CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + +CBN95[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_Urban[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_Rural[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_Poor95[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBNPoor_Urban[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBNPoor_Rural[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_NonPoor95[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_NonPoor_Urban[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_NonPoor_Rural[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] + +##### Age ##### +#Calculation +Age<-CBN_NonPoor_Rural[,Age:=weighted.mean(HAge,Weight),by=cluster][order(cluster)] +Age<-Age[,.(Age,cluster,Weight)] +Age1<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Age1[,Weight:=NULL] + +Age<-CBNPoor_Rural[,Poor_Age:=weighted.mean(HAge,Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age,cluster,Weight)] +Age2<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBN_NonPoor_Rural[,Poor_Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_40,cluster,Weight)] +Age3<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBN_NonPoor_Rural[,Poor_Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_4050,cluster,Weight)] +Age4<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBN_NonPoor_Rural[,Poor_Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_50,cluster,Weight)] +Age5<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBNPoor_Rural[,Poor_Age:=weighted.mean(HAge,Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age,cluster,Weight)] +Age2<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBNPoor_Rural[,Poor_Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_40,cluster,Weight)] +Age6<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBNPoor_Rural[,Poor_Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_4050,cluster,Weight)] +Age7<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBNPoor_Rural[,Poor_Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_50,cluster,Weight)] +Age8<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +AgeT<-merge(Age1,Age2,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age3,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age4,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age5,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age6,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age7,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age8,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +write.xlsx(AgeT, "D:/R/Poors_Rural2.xlsx",sheetName = "Age1") + + +Age<-CBN_Rural[,Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=Poor11][order(Poor11)] +Age<-Age[,.(Age_40,Poor11,Weight)] +Age6<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Age6[,Weight:=NULL] + +Age<-CBN_Rural[,Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=Poor11][order(Poor11)] +Age<-Age[,.(Age_4050,Poor11,Weight)] +Age7<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] + +Age<-CBN_Rural[,Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=Poor11][order(Poor11)] +Age<-Age[,.(Age_50,Poor11,Weight)] +Age8<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] + +AgeT<-merge(Age6,Age7,by =c("Poor11"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age8,by =c("Poor11"),all.x=TRUE) +AgeT[,Weight:=NULL] +write.xlsx(AgeT, "D:/R/Poors_Rural2.xlsx",sheetName = "Age2",append = TRUE) + +#Graphs +#sm.density.compare(CBN_Rural$HAge, CBN_Rural$Poor11) +#sm.density.compare(CBNPoor_Rural$HAge, CBNPoor_Rural$cluster) + +#sm.density.compare(CBN_Rural$HAge, CBN_Rural$Poor11) +#sm.density.compare(CBNPoor_Rural$HAge, CBNPoor_Rural$cluster) + +#sm.density.compare(CBN_NonPoor_Rural$HAge, CBN_NonPoor_Rural$Poor11) +#sm.density.compare(CBNPoor_Rural$HAge, CBNPoor_Rural$cluster) + + +#hist(CBNPoor_Rural$HAge,breaks=12, col="red") +#plot(density(CBNPoor_Rural$HAge)) +#plot(density(CBNPoor_Rural$HAge,weights=CBNPoor_Rural$Weight),type='l',bty='n') +#polygon(density(CBNPoor_Rural$HAge), col="red", border="blue") +#sm.density.compare(CBNPoor_Rural$HAge, CBNPoor_Rural$cluster,weights=CBNPoor_Rural$Weight) +#boxplot(CBNPoor_Rural$HAge, horizontal = TRUE,col="red") + + +##### Sex ##### +Female<-CBN_NonPoor_Rural[,Female_Poors:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=ProvinceCode][order(ProvinceCode)] +Female<-Female[,.(Female_Poors,cluster,Weight)] +Female1<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Female1[,Weight:=NULL] + +Female<-CBNPoor_Rural[,Female:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=ProvinceCode][order(ProvinceCode)] +Female<-Female[,.(Female,cluster,Weight)] +Female2<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Female1<-merge(Female1,Female2,by =c("cluster"),all.x=TRUE) +Female1[,Weight:=NULL] +write.xlsx(Female1, "D:/R/Poors_Rural2.xlsx",sheetName = "Female1",append = TRUE) + +Female<-CBN_Rural[,Female:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=Poor11][order(Poor11)] +Female<-Female[,.(Female,Poor11,Weight)] +Female3<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Female3[,Weight:=NULL] +write.xlsx(Female3, "D:/R/Poors_Rural2.xlsx",sheetName = "Female2",append = TRUE) + +##### Size ##### +Size<-CBN_NonPoor_Rural[,Size:=weighted.mean(Size,Weight),by=cluster][order(cluster)] +Size<-Size[,.(Size,cluster,Weight)] +Size1<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Size1[,Weight:=NULL] + +Size<-CBNPoor_Rural[,Poor_Size:=weighted.mean(Size,Weight),by=cluster][order(cluster)] +Size<-Size[,.(Poor_Size,cluster,Weight)] +Size2<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +SizeT<-merge(Size1,Size2,by =c("cluster"),all.x=TRUE) +SizeT[,Weight:=NULL] +write.xlsx(SizeT, "D:/R/Poors_Rural2.xlsx",sheetName = "Size1",append = TRUE) + +Size<-CBN_Rural[,Size:=weighted.mean(Size,Weight),by=Poor11][order(Poor11)] +Size<-Size[,.(Size,Poor11,Weight)] +Size3<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Size3[,Weight:=NULL] +write.xlsx(Size3, "D:/R/Poors_Rural2.xlsx",sheetName = "Size2",append = TRUE) + + +#sm.density.compare(CBN_Rural$Size, CBN_Rural$Poor11) +#sm.density.compare(CBNPoor_Rural$Size, CBNPoor_Rural$cluster) + +#sm.density.compare(CBN_Rural$Size, CBN_Rural$Poor11) +#sm.density.compare(CBNPoor_Rural$Size, CBNPoor_Rural$cluster) + +#sm.density.compare(CBN_NonPoor_Rural$Size, CBN_NonPoor_Rural$Poor11) +#sm.density.compare(CBNPoor_Rural$Size, CBNPoor_Rural$cluster) + + +##### Literature ##### +Literate<-CBN_NonPoor_Rural[,Literate_Poors:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=cluster][order(cluster)] +Literate<-Literate[,.(Literate_Poors,cluster,Weight)] +Literate1<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Literate1[,Weight:=NULL] + +Literate<-CBNPoor_Rural[,Literate:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=cluster][order(cluster)] +Literate<-Literate[,.(Literate,cluster,Weight)] +Literate2<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Literate1<-merge(Literate1,Literate2,by =c("cluster"),all.x=TRUE) +Literate1[,Weight:=NULL] +write.xlsx(Literate1, "D:/R/Poors_Rural2.xlsx",sheetName = "Literate1",append = TRUE) + +Literate<-CBN_Rural[,Literate:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=Poor11][order(Poor11)] +Literate<-Literate[,.(Literate,Poor11,Weight)] +Literate3<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Literate3[,Weight:=NULL] +write.xlsx(Literate3, "D:/R/Poors_Rural2.xlsx",sheetName = "Literate2",append = TRUE) + + +##### Education ##### + +#Education<-CBN_NonPoor_Rural[,Education_Poors1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1, +# ifelse(HEduLevel0 %in% "Elementary",2, +#ifelse(HEduLevel0 %in% "Middle",3, +#ifelse(HEduLevel0 %in% "High",4, +#ifelse(HEduLevel0 %in% "Pre",5, +#ifelse(HEduLevel0 %in% "University",6,0)))))),Weight),by=cluster][order(cluster)] + +Education<-CBN_NonPoor_Rural[,Education_Poors1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors1,cluster,Weight)] +Education1<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Education1[,Weight:=NULL] + +Education<-CBN_NonPoor_Rural[,Education_Poors2:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors2,cluster,Weight)] +Education2<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBN_NonPoor_Rural[,Education_Poors3:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors3,cluster,Weight)] +Education3<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBN_NonPoor_Rural[,Education_Poors4:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors4,cluster,Weight)] +Education4<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBN_NonPoor_Rural[,Education_Poors5:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors5,cluster,Weight)] +Education5<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBN_NonPoor_Rural[,Education_Poors6:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors6,cluster,Weight)] +Education6<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Rural[,Education_Poors7:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors7,cluster,Weight)] +Education7<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Education7[,Weight:=NULL] + +Education<-CBNPoor_Rural[,Education_Poors8:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors8,cluster,Weight)] +Education8<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Rural[,Education_Poors9:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors9,cluster,Weight)] +Education9<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Rural[,Education_Poors10:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors10,cluster,Weight)] +Education10<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Rural[,Education_Poors11:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors11,cluster,Weight)] +Education11<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Rural[,Education_Poors12:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors12,cluster,Weight)] +Education12<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education1<-merge(Education1,Education2,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education3,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education4,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education5,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education6,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education7,by =c("cluster"),all.x=TRUE) +Education1<-merge(Education1,Education8,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education9,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education10,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education11,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education12,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +write.xlsx(Education1, "D:/R/Poors_Rural2.xlsx",sheetName = "Education1",append = TRUE) + + +Education13<-CBN_Rural[,Education1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=Poor11][order(Poor11)] +Education13<-Education13[,.(Education1,Poor11,Weight)] +Education13<-Education13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education13[,Weight:=NULL] + +Education14<-CBN_Rural[,Education2:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=Poor11][order(Poor11)] +Education14<-Education14[,.(Education2,Poor11,Weight)] +Education14<-Education14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education14[,Weight:=NULL] + +Education15<-CBN_Rural[,Education3:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=Poor11][order(Poor11)] +Education15<-Education15[,.(Education3,Poor11,Weight)] +Education15<-Education15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education15[,Weight:=NULL] + +Education16<-CBN_Rural[,Education4:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=Poor11][order(Poor11)] +Education16<-Education16[,.(Education4,Poor11,Weight)] +Education16<-Education16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education16[,Weight:=NULL] + +Education17<-CBN_Rural[,Education5:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=Poor11][order(Poor11)] +Education17<-Education17[,.(Education5,Poor11,Weight)] +Education17<-Education17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education17[,Weight:=NULL] + +Education18<-CBN_Rural[,Education6:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=Poor11][order(Poor11)] +Education18<-Education18[,.(Education6,Poor11,Weight)] +Education18<-Education18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education18[,Weight:=NULL] + +Education2<-merge(Education13,Education14,by =c("Poor11"),all.x=TRUE) +Education2<-merge(Education2,Education15,by =c("Poor11"),all.x=TRUE) +Education2<-merge(Education2,Education16,by =c("Poor11"),all.x=TRUE) +Education2<-merge(Education2,Education17,by =c("Poor11"),all.x=TRUE) +Education2<-merge(Education2,Education18,by =c("Poor11"),all.x=TRUE) +write.xlsx(Education2, "D:/R/Poors_Rural2.xlsx",sheetName = "Education2",append = TRUE) + + + +##### Activity ##### +Activity<-CBN_NonPoor_Rural[,Activity_Poors1:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors1,cluster,Weight)] +Activity1<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Activity1[,Weight:=NULL] + +Activity<-CBN_NonPoor_Rural[,Activity_Poors2:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors2,cluster,Weight)] +Activity2<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBN_NonPoor_Rural[,Activity_Poors3:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors3,cluster,Weight)] +Activity3<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBN_NonPoor_Rural[,Activity_Poors4:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors4,cluster,Weight)] +Activity4<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBN_NonPoor_Rural[,Activity_Poors5:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors5,cluster,Weight)] +Activity5<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBN_NonPoor_Rural[,Activity_Poors6:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors6,cluster,Weight)] +Activity6<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Rural[,Activity_Poors7:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors7,cluster,Weight)] +Activity7<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Activity7[,Weight:=NULL] + +Activity<-CBNPoor_Rural[,Activity_Poors8:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors8,cluster,Weight)] +Activity8<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Rural[,Activity_Poors9:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors9,cluster,Weight)] +Activity9<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Rural[,Activity_Poors10:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors10,cluster,Weight)] +Activity10<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Rural[,Activity_Poors11:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors11,cluster,Weight)] +Activity11<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Rural[,Activity_Poors12:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors12,cluster,Weight)] +Activity12<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity1<-merge(Activity1,Activity2,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity3,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity4,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity5,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity6,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity7,by =c("cluster"),all.x=TRUE) +Activity1<-merge(Activity1,Activity8,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity9,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity10,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity11,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity12,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +write.xlsx(Activity1, "D:/R/Poors_Rural2.xlsx",sheetName = "Activity1",append = TRUE) + + +Activity13<-CBN_Rural[,Activity1:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=Poor11][order(Poor11)] +Activity13<-Activity13[,.(Activity1,Poor11,Weight)] +Activity13<-Activity13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity13[,Weight:=NULL] + +Activity14<-CBN_Rural[,Activity2:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=Poor11][order(Poor11)] +Activity14<-Activity14[,.(Activity2,Poor11,Weight)] +Activity14<-Activity14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity14[,Weight:=NULL] + +Activity15<-CBN_Rural[,Activity3:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=Poor11][order(Poor11)] +Activity15<-Activity15[,.(Activity3,Poor11,Weight)] +Activity15<-Activity15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity15[,Weight:=NULL] + +Activity16<-CBN_Rural[,Activity4:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=Poor11][order(Poor11)] +Activity16<-Activity16[,.(Activity4,Poor11,Weight)] +Activity16<-Activity16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity16[,Weight:=NULL] + +Activity17<-CBN_Rural[,Activity5:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=Poor11][order(Poor11)] +Activity17<-Activity17[,.(Activity5,Poor11,Weight)] +Activity17<-Activity17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity17[,Weight:=NULL] + +Activity18<-CBN_Rural[,Activity6:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=Poor11][order(Poor11)] +Activity18<-Activity18[,.(Activity6,Poor11,Weight)] +Activity18<-Activity18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity18[,Weight:=NULL] + +Activity2<-merge(Activity13,Activity14,by =c("Poor11"),all.x=TRUE) +Activity2<-merge(Activity2,Activity15,by =c("Poor11"),all.x=TRUE) +Activity2<-merge(Activity2,Activity16,by =c("Poor11"),all.x=TRUE) +Activity2<-merge(Activity2,Activity17,by =c("Poor11"),all.x=TRUE) +Activity2<-merge(Activity2,Activity18,by =c("Poor11"),all.x=TRUE) +write.xlsx(Activity2, "D:/R/Poors_Rural2.xlsx",sheetName = "Activity2",append = TRUE) + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/81-Poor properties_Urban.R b/R/Archive/November 2019/81-Poor properties_Urban.R new file mode 100644 index 00000000..f8d334a3 --- /dev/null +++ b/R/Archive/November 2019/81-Poor properties_Urban.R @@ -0,0 +1,462 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +#Load Data +load(file=paste0(Settings$HEISProcessedPath,"CBN_Urban","95.rda")) +load(file=paste0(Settings$HEISProcessedPath,"CBN_Rural","95.rda")) +CBN95<-rbind(CBN_Urban,CBN_Rural) + +#Add house properties +T95P2 <- read_dta("D:/R/T95P2.dta") +R95P2 <- read_dta("D:/R/R95P2.dta") +U95P2 <- read_dta("D:/R/U95P2.dta") + +CBN95<-merge(CBN95,T95P2,by =c("HHID"),all.x=TRUE) +CBN_Urban<-merge(CBN_Urban,U95P2,by =c("HHID"),all.x=TRUE) +CBN_Rural<-merge(CBN_Rural,R95P2,by =c("HHID"),all.x=TRUE) + +load(file=paste0(Settings$HEISProcessedPath,"CBNPoor_Urban","95.rda")) +load(file=paste0(Settings$HEISProcessedPath,"CBNPoor_Rural","95.rda")) +CBN_Poor95<-rbind(CBNPoor_Urban,CBNPoor_Rural) + +CBN_Poor95<-merge(CBN_Poor95,T95P2,by =c("HHID"),all.x=TRUE) +CBNPoor_Urban<-merge(CBNPoor_Urban,U95P2,by =c("HHID"),all.x=TRUE) +CBNPoor_Rural<-merge(CBNPoor_Rural,R95P2,by =c("HHID"),all.x=TRUE) + + +CBN_NonPoor_Urban<-CBN_Urban[Poor11==0] +CBN_NonPoor_Rural<-CBN_Rural[Poor11==0] +CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + +CBN95[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_Urban[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_Rural[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_Poor95[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBNPoor_Urban[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBNPoor_Rural[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_NonPoor95[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_NonPoor_Urban[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] +CBN_NonPoor_Rural[,ProvinceCode2:=as.integer(str_sub(HHIDs,2,3))] + +##### Age ##### +#Calculation +Age<-CBN_NonPoor_Urban[,Age:=weighted.mean(HAge,Weight),by=cluster][order(cluster)] +Age<-Age[,.(Age,cluster,Weight)] +Age1<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Age1[,Weight:=NULL] + +Age<-CBNPoor_Urban[,Poor_Age:=weighted.mean(HAge,Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age,cluster,Weight)] +Age2<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBN_NonPoor_Urban[,Poor_Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_40,cluster,Weight)] +Age3<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBN_NonPoor_Urban[,Poor_Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_4050,cluster,Weight)] +Age4<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBN_NonPoor_Urban[,Poor_Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_50,cluster,Weight)] +Age5<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBNPoor_Urban[,Poor_Age:=weighted.mean(HAge,Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age,cluster,Weight)] +Age2<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBNPoor_Urban[,Poor_Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_40,cluster,Weight)] +Age6<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBNPoor_Urban[,Poor_Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_4050,cluster,Weight)] +Age7<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Age<-CBNPoor_Urban[,Poor_Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=cluster][order(cluster)] +Age<-Age[,.(Poor_Age_50,cluster,Weight)] +Age8<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +AgeT<-merge(Age1,Age2,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age3,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age4,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age5,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age6,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age7,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age8,by =c("cluster"),all.x=TRUE) +AgeT[,Weight:=NULL] +write.xlsx(AgeT, "D:/R/Poors_Urban2.xlsx",sheetName = "Age1") + + +Age<-CBN_Urban[,Age_40:=weighted.mean(ifelse(HAge<=40,1,0),Weight),by=Poor11][order(Poor11)] +Age<-Age[,.(Age_40,Poor11,Weight)] +Age6<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Age6[,Weight:=NULL] + +Age<-CBN_Urban[,Age_4050:=weighted.mean(ifelse(HAge>40 & HAge<50,1,0),Weight),by=Poor11][order(Poor11)] +Age<-Age[,.(Age_4050,Poor11,Weight)] +Age7<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] + +Age<-CBN_Urban[,Age_50:=weighted.mean(ifelse(HAge>=50,1,0),Weight),by=Poor11][order(Poor11)] +Age<-Age[,.(Age_50,Poor11,Weight)] +Age8<-Age[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] + +AgeT<-merge(Age6,Age7,by =c("Poor11"),all.x=TRUE) +AgeT[,Weight:=NULL] +AgeT<-merge(AgeT,Age8,by =c("Poor11"),all.x=TRUE) +AgeT[,Weight:=NULL] +write.xlsx(AgeT, "D:/R/Poors_Urban2.xlsx",sheetName = "Age2",append = TRUE) + +#Graphs +#sm.density.compare(CBN_Urban$HAge, CBN_Urban$Poor11) +#sm.density.compare(CBNPoor_Urban$HAge, CBNPoor_Urban$ProvinceCode2) + +#sm.density.compare(CBN_Rural$HAge, CBN_Rural$Poor11) +#sm.density.compare(CBNPoor_Rural$HAge, CBNPoor_Rural$ProvinceCode2) + +#sm.density.compare(CBN_NonPoor_Urban$HAge, CBN_NonPoor_Urban$Poor11) +#sm.density.compare(CBNPoor_Urban$HAge, CBNPoor_Urban$ProvinceCode2) + + +#hist(CBNPoor_Urban$HAge,breaks=12, col="red") +#plot(density(CBNPoor_Urban$HAge)) +#plot(density(CBNPoor_Urban$HAge,weights=CBNPoor_Urban$Weight),type='l',bty='n') +#polygon(density(CBNPoor_Urban$HAge), col="red", border="blue") +#sm.density.compare(CBNPoor_Urban$HAge, CBNPoor_Urban$cluster,Weights=CBNPoor_Urban$Weight) +#boxplot(CBNPoor_Urban$HAge, horizontal = TRUE,col="red") + + +##### Sex ##### +Female<-CBN_NonPoor_Urban[,Female_Poors:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=cluster][order(cluster)] +Female<-Female[,.(Female_Poors,cluster,Weight)] +Female1<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Female1[,Weight:=NULL] + +Female<-CBNPoor_Urban[,Female:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=cluster][order(cluster)] +Female<-Female[,.(Female,cluster,Weight)] +Female2<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Female1<-merge(Female1,Female2,by =c("cluster"),all.x=TRUE) +Female1[,Weight:=NULL] +write.xlsx(Female1, "D:/R/Poors_Urban2.xlsx",sheetName = "Female1",append = TRUE) + +Female<-CBN_Urban[,Female:=weighted.mean(ifelse(HSex %in% "Female",1,0),Weight),by=Poor11][order(Poor11)] +Female<-Female[,.(Female,Poor11,Weight)] +Female3<-Female[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Female3[,Weight:=NULL] +write.xlsx(Female3, "D:/R/Poors_Urban2.xlsx",sheetName = "Female2",append = TRUE) + +##### Size ##### +Size<-CBN_NonPoor_Urban[,Size:=weighted.mean(Size,Weight),by=cluster][order(cluster)] +Size<-Size[,.(Size,cluster,Weight)] +Size1<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Size1[,Weight:=NULL] + +Size<-CBNPoor_Urban[,Poor_Size:=weighted.mean(Size,Weight),by=cluster][order(cluster)] +Size<-Size[,.(Poor_Size,cluster,Weight)] +Size2<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +SizeT<-merge(Size1,Size2,by =c("cluster"),all.x=TRUE) +SizeT[,Weight:=NULL] +write.xlsx(SizeT, "D:/R/Poors_Urban2.xlsx",sheetName = "Size1",append = TRUE) + +Size<-CBN_Urban[,Size:=weighted.mean(Size,Weight),by=Poor11][order(Poor11)] +Size<-Size[,.(Size,Poor11,Weight)] +Size3<-Size[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Size3[,Weight:=NULL] +write.xlsx(Size3, "D:/R/Poors_Urban2.xlsx",sheetName = "Size2",append = TRUE) + + +#sm.density.compare(CBN_Urban$Size, CBN_Urban$Poor11) +#sm.density.compare(CBNPoor_Urban$Size, CBNPoor_Urban$ProvinceCode2) + +#sm.density.compare(CBN_Rural$Size, CBN_Rural$Poor11) +#sm.density.compare(CBNPoor_Rural$Size, CBNPoor_Rural$ProvinceCode2) + +#sm.density.compare(CBN_NonPoor_Urban$Size, CBN_NonPoor_Urban$Poor11) +#sm.density.compare(CBNPoor_Urban$Size, CBNPoor_Urban$ProvinceCode2) + + +##### Literature ##### +Literate<-CBN_NonPoor_Urban[,Literate_Poors:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=cluster][order(cluster)] +Literate<-Literate[,.(Literate_Poors,cluster,Weight)] +Literate1<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Literate1[,Weight:=NULL] + +Literate<-CBNPoor_Urban[,Literate:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=cluster][order(cluster)] +Literate<-Literate[,.(Literate,cluster,Weight)] +Literate2<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Literate1<-merge(Literate1,Literate2,by =c("cluster"),all.x=TRUE) +Literate1[,Weight:=NULL] +write.xlsx(Literate1, "D:/R/Poors_Urban2.xlsx",sheetName = "Literate1",append = TRUE) + +Literate<-CBN_Urban[,Literate:=weighted.mean(ifelse(HLiterate %in% "TRUE",1,0),Weight),by=Poor11][order(Poor11)] +Literate<-Literate[,.(Literate,Poor11,Weight)] +Literate3<-Literate[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Literate3[,Weight:=NULL] +write.xlsx(Literate3, "D:/R/Poors_Urban2.xlsx",sheetName = "Literate2",append = TRUE) + + +##### Education ##### + +#Education<-CBN_NonPoor_Urban[,Education_Poors1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1, +# ifelse(HEduLevel0 %in% "Elementary",2, +#ifelse(HEduLevel0 %in% "Middle",3, +#ifelse(HEduLevel0 %in% "High",4, +#ifelse(HEduLevel0 %in% "Pre",5, +#ifelse(HEduLevel0 %in% "University",6,0)))))),Weight),by=cluster][order(cluster)] + +Education<-CBN_NonPoor_Urban[,Education_Poors1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors1,cluster,Weight)] +Education1<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Education1[,Weight:=NULL] + +Education<-CBN_NonPoor_Urban[,Education_Poors2:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors2,cluster,Weight)] +Education2<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBN_NonPoor_Urban[,Education_Poors3:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors3,cluster,Weight)] +Education3<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBN_NonPoor_Urban[,Education_Poors4:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors4,cluster,Weight)] +Education4<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBN_NonPoor_Urban[,Education_Poors5:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors5,cluster,Weight)] +Education5<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBN_NonPoor_Urban[,Education_Poors6:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors6,cluster,Weight)] +Education6<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Urban[,Education_Poors7:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors7,cluster,Weight)] +Education7<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Education7[,Weight:=NULL] + +Education<-CBNPoor_Urban[,Education_Poors8:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors8,cluster,Weight)] +Education8<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Urban[,Education_Poors9:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors9,cluster,Weight)] +Education9<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Urban[,Education_Poors10:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors10,cluster,Weight)] +Education10<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Urban[,Education_Poors11:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors11,cluster,Weight)] +Education11<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education<-CBNPoor_Urban[,Education_Poors12:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=cluster][order(cluster)] +Education<-Education[,.(Education_Poors12,cluster,Weight)] +Education12<-Education[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Education1<-merge(Education1,Education2,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education3,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education4,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education5,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education6,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education7,by =c("cluster"),all.x=TRUE) +Education1<-merge(Education1,Education8,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education9,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education10,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education11,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +Education1<-merge(Education1,Education12,by =c("cluster"),all.x=TRUE) +Education1[,Weight:=NULL] +write.xlsx(Education1, "D:/R/Poors_Urban2.xlsx",sheetName = "Education1",append = TRUE) + + +Education13<-CBN_Urban[,Education1:=weighted.mean(ifelse(HEduLevel0 %in% "Illiterate",1,0),Weight),by=Poor11][order(Poor11)] +Education13<-Education13[,.(Education1,Poor11,Weight)] +Education13<-Education13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education13[,Weight:=NULL] + +Education14<-CBN_Urban[,Education2:=weighted.mean(ifelse(HEduLevel0 %in% "Elementary",1,0),Weight),by=Poor11][order(Poor11)] +Education14<-Education14[,.(Education2,Poor11,Weight)] +Education14<-Education14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education14[,Weight:=NULL] + +Education15<-CBN_Urban[,Education3:=weighted.mean(ifelse(HEduLevel0 %in% "Middle",1,0),Weight),by=Poor11][order(Poor11)] +Education15<-Education15[,.(Education3,Poor11,Weight)] +Education15<-Education15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education15[,Weight:=NULL] + +Education16<-CBN_Urban[,Education4:=weighted.mean(ifelse(HEduLevel0 %in% "High",1,0),Weight),by=Poor11][order(Poor11)] +Education16<-Education16[,.(Education4,Poor11,Weight)] +Education16<-Education16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education16[,Weight:=NULL] + +Education17<-CBN_Urban[,Education5:=weighted.mean(ifelse(HEduLevel0 %in% "Pre",1,0),Weight),by=Poor11][order(Poor11)] +Education17<-Education17[,.(Education5,Poor11,Weight)] +Education17<-Education17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education17[,Weight:=NULL] + +Education18<-CBN_Urban[,Education6:=weighted.mean(ifelse(HEduLevel0 %in% "University",1,0),Weight),by=Poor11][order(Poor11)] +Education18<-Education18[,.(Education6,Poor11,Weight)] +Education18<-Education18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Education18[,Weight:=NULL] + +Education2<-merge(Education13,Education14,by =c("Poor11"),all.x=TRUE) +Education2<-merge(Education2,Education15,by =c("Poor11"),all.x=TRUE) +Education2<-merge(Education2,Education16,by =c("Poor11"),all.x=TRUE) +Education2<-merge(Education2,Education17,by =c("Poor11"),all.x=TRUE) +Education2<-merge(Education2,Education18,by =c("Poor11"),all.x=TRUE) +write.xlsx(Education2, "D:/R/Poors_Urban2.xlsx",sheetName = "Education2",append = TRUE) + + + +##### Activity ##### +Activity<-CBN_NonPoor_Urban[,Activity_Poors1:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors1,cluster,Weight)] +Activity1<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Activity1[,Weight:=NULL] + +Activity<-CBN_NonPoor_Urban[,Activity_Poors2:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors2,cluster,Weight)] +Activity2<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBN_NonPoor_Urban[,Activity_Poors3:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors3,cluster,Weight)] +Activity3<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBN_NonPoor_Urban[,Activity_Poors4:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors4,cluster,Weight)] +Activity4<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBN_NonPoor_Urban[,Activity_Poors5:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors5,cluster,Weight)] +Activity5<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBN_NonPoor_Urban[,Activity_Poors6:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors6,cluster,Weight)] +Activity6<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Urban[,Activity_Poors7:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors7,cluster,Weight)] +Activity7<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] +Activity7[,Weight:=NULL] + +Activity<-CBNPoor_Urban[,Activity_Poors8:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors8,cluster,Weight)] +Activity8<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Urban[,Activity_Poors9:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors9,cluster,Weight)] +Activity9<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Urban[,Activity_Poors10:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors10,cluster,Weight)] +Activity10<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Urban[,Activity_Poors11:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors11,cluster,Weight)] +Activity11<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity<-CBNPoor_Urban[,Activity_Poors12:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=cluster][order(cluster)] +Activity<-Activity[,.(Activity_Poors12,cluster,Weight)] +Activity12<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(cluster)] + +Activity1<-merge(Activity1,Activity2,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity3,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity4,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity5,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity6,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity7,by =c("cluster"),all.x=TRUE) +Activity1<-merge(Activity1,Activity8,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity9,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity10,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity11,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +Activity1<-merge(Activity1,Activity12,by =c("cluster"),all.x=TRUE) +Activity1[,Weight:=NULL] +write.xlsx(Activity1, "D:/R/Poors_Urban2.xlsx",sheetName = "Activity1",append = TRUE) + + +Activity13<-CBN_Urban[,Activity1:=weighted.mean(ifelse(HActivityState %in% "Employed",1,0),Weight),by=Poor11][order(Poor11)] +Activity13<-Activity13[,.(Activity1,Poor11,Weight)] +Activity13<-Activity13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity13[,Weight:=NULL] + +Activity14<-CBN_Urban[,Activity2:=weighted.mean(ifelse(HActivityState %in% "Unemployed",1,0),Weight),by=Poor11][order(Poor11)] +Activity14<-Activity14[,.(Activity2,Poor11,Weight)] +Activity14<-Activity14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity14[,Weight:=NULL] + +Activity15<-CBN_Urban[,Activity3:=weighted.mean(ifelse(HActivityState %in% "Income without Work",1,0),Weight),by=Poor11][order(Poor11)] +Activity15<-Activity15[,.(Activity3,Poor11,Weight)] +Activity15<-Activity15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity15[,Weight:=NULL] + +Activity16<-CBN_Urban[,Activity4:=weighted.mean(ifelse(HActivityState %in% "Student",1,0),Weight),by=Poor11][order(Poor11)] +Activity16<-Activity16[,.(Activity4,Poor11,Weight)] +Activity16<-Activity16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity16[,Weight:=NULL] + +Activity17<-CBN_Urban[,Activity5:=weighted.mean(ifelse(HActivityState %in% "Housekeeper",1,0),Weight),by=Poor11][order(Poor11)] +Activity17<-Activity17[,.(Activity5,Poor11,Weight)] +Activity17<-Activity17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity17[,Weight:=NULL] + +Activity18<-CBN_Urban[,Activity6:=weighted.mean(ifelse(HActivityState %in% "Other",1,0),Weight),by=Poor11][order(Poor11)] +Activity18<-Activity18[,.(Activity6,Poor11,Weight)] +Activity18<-Activity18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Poor11)] +Activity18[,Weight:=NULL] + +Activity2<-merge(Activity13,Activity14,by =c("Poor11"),all.x=TRUE) +Activity2<-merge(Activity2,Activity15,by =c("Poor11"),all.x=TRUE) +Activity2<-merge(Activity2,Activity16,by =c("Poor11"),all.x=TRUE) +Activity2<-merge(Activity2,Activity17,by =c("Poor11"),all.x=TRUE) +Activity2<-merge(Activity2,Activity18,by =c("Poor11"),all.x=TRUE) +write.xlsx(Activity2, "D:/R/Poors_Urban2.xlsx",sheetName = "Activity2",append = TRUE) + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/82-Poor properties_Home_Rural.R b/R/Archive/November 2019/82-Poor properties_Home_Rural.R new file mode 100644 index 00000000..c91b88f7 --- /dev/null +++ b/R/Archive/November 2019/82-Poor properties_Home_Rural.R @@ -0,0 +1,270 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + #Load Data + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) + UNewFinalPoor<-NewFinalPoor[Region=="Urban"] + RNewFinalPoor<-NewFinalPoor[Region=="Rural"] + + #Add house properties + T95P2 <- read_dta("D:/R/T95P2.dta") + R95P2 <- read_dta("D:/R/R95P2.dta") + U95P2 <- read_dta("D:/R/U95P2.dta") + + CBN95<-merge(NewFinalPoor,T95P2,by =c("HHID"),all.x=TRUE) + CBN_Urban<-merge(UNewFinalPoor,U95P2,by =c("HHID"),all.x=TRUE) + CBN_Rural<-merge(RNewFinalPoor,R95P2,by =c("HHID"),all.x=TRUE) + + CBN_Poor95<-CBN95[FinalPoor==1] + CBN_Poor_Urban<-CBN_Urban[FinalPoor==1] + CBN_Poor_Rural<-CBN_Rural[FinalPoor==1] + + + CBN_NonPoor_Urban<-CBN_Urban[FinalPoor==0] + CBN_NonPoor_Rural<-CBN_Rural[FinalPoor==0] + CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + + +##### Hoese Conditions ##### +Area_Per<-CBN_NonPoor_Rural[,Area_Per1:=weighted.mean(Area/Size,Weight),by=NewArea][order(NewArea)] +Area_Per<-Area_Per[,.(Area_Per1,NewArea,Weight)] +Area_Per1<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Area_Per1[,Weight:=NULL] + +Area_Per<-CBN_Poor_Rural[,Area_Per2:=weighted.mean(Area/Size,Weight),by=NewArea][order(NewArea)] +Area_Per<-Area_Per[,.(Area_Per2,NewArea,Weight)] +Area_Per2<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Area_Per2[,Weight:=NULL] + +Area_Per1<-merge(Area_Per1,Area_Per2,by =c("NewArea"),all.x=TRUE) +write.xlsx(Area_Per1, "D:/R/Poors_Rural_home.xlsx",sheetName = "Area_Per1") + +Area_Per<-CBN_Rural[,Area_Per:=weighted.mean(Area/Size,Weight),by=FinalPoor][order(FinalPoor)] +Area_Per<-Area_Per[,.(Area_Per,FinalPoor,Weight)] +Area_Per<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Area_Per[,Weight:=NULL] +write.xlsx(Area_Per, "D:/R/Poors_Rural_home.xlsx",sheetName = "Area_Per2",append = TRUE) + +Rooms_Per<-CBN_NonPoor_Rural[,Rooms_Per1:=weighted.mean(Rooms/Size,Weight),by=NewArea][order(NewArea)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per1,NewArea,Weight)] +Rooms_Per1<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Rooms_Per1[,Weight:=NULL] + +Rooms_Per<-CBN_Poor_Rural[,Rooms_Per2:=weighted.mean(Rooms/Size,Weight),by=NewArea][order(NewArea)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per2,NewArea,Weight)] +Rooms_Per2<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Rooms_Per2[,Weight:=NULL] + +Rooms_Per1<-merge(Rooms_Per1,Rooms_Per2,by =c("NewArea"),all.x=TRUE) +write.xlsx(Rooms_Per1, "D:/R/Poors_Rural_home.xlsx",sheetName = "Rooms_Per1",append = TRUE) + +Rooms_Per<-CBN_Rural[,Rooms_Per:=weighted.mean(Rooms/Size,Weight),by=FinalPoor][order(FinalPoor)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per,FinalPoor,Weight)] +Rooms_Per<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Rooms_Per[,Weight:=NULL] +write.xlsx(Rooms_Per, "D:/R/Poors_Rural_home.xlsx",sheetName = "Rooms_Per2",append = TRUE) + +MetrPrice<-CBN_NonPoor_Rural[,MetrPrice1:=weighted.mean(MetrPrice,Weight),by=NewArea][order(NewArea)] +MetrPrice<-MetrPrice[,.(MetrPrice1,NewArea,Weight)] +MetrPrice1<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +MetrPrice1[,Weight:=NULL] + +MetrPrice<-CBN_Poor_Rural[,MetrPrice2:=weighted.mean(MetrPrice,Weight),by=NewArea][order(NewArea)] +MetrPrice<-MetrPrice[,.(MetrPrice2,NewArea,Weight)] +MetrPrice2<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +MetrPrice2[,Weight:=NULL] + +MetrPrice1<-merge(MetrPrice1,MetrPrice2,by =c("NewArea"),all.x=TRUE) +write.xlsx(MetrPrice1, "D:/R/Poors_Rural_home.xlsx",sheetName = "MetrPrice1",append = TRUE) + +MetrPrice<-CBN_Rural[,MetrPrice:=weighted.mean(MetrPrice,Weight),by=FinalPoor][order(FinalPoor)] +MetrPrice<-MetrPrice[,.(MetrPrice,FinalPoor,Weight)] +MetrPrice<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +MetrPrice[,Weight:=NULL] +write.xlsx(MetrPrice, "D:/R/Poors_Rural_home.xlsx",sheetName = "MetrPrice2",append = TRUE) + +##### Electricity ##### +Electricity<-CBN_NonPoor_Rural[,Electricity_Poors:=weighted.mean(Electricity,Weight),by=NewArea][order(NewArea)] +Electricity<-Electricity[,.(Electricity_Poors,NewArea,Weight)] +Electricity1<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Electricity1[,Weight:=NULL] + +Electricity<-CBN_Poor_Rural[,Electricity:=weighted.mean(Electricity,Weight),by=NewArea][order(NewArea)] +Electricity<-Electricity[,.(Electricity,NewArea,Weight)] +Electricity2<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Electricity1<-merge(Electricity1,Electricity2,by =c("NewArea"),all.x=TRUE) +Electricity1[,Weight:=NULL] +write.xlsx(Electricity1, "D:/R/Poors_Rural_home.xlsx",sheetName = "Electricity1",append = TRUE) + +Electricity<-CBN_Rural[,Electricity:=weighted.mean(Electricity,Weight),by=FinalPoor][order(FinalPoor)] +Electricity<-Electricity[,.(Electricity,FinalPoor,Weight)] +Electricity3<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Electricity3[,Weight:=NULL] +write.xlsx(Electricity3, "D:/R/Poors_Rural_home.xlsx",sheetName = "Electricity2",append = TRUE) + +##### PipedWater ##### +PipedWater<-CBN_NonPoor_Rural[,PipedWater_Poors:=weighted.mean(PipedWater,Weight),by=NewArea][order(NewArea)] +PipedWater<-PipedWater[,.(PipedWater_Poors,NewArea,Weight)] +PipedWater1<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PipedWater1[,Weight:=NULL] + +PipedWater<-CBN_Poor_Rural[,PipedWater:=weighted.mean(PipedWater,Weight),by=NewArea][order(NewArea)] +PipedWater<-PipedWater[,.(PipedWater,NewArea,Weight)] +PipedWater2<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PipedWater1<-merge(PipedWater1,PipedWater2,by =c("NewArea"),all.x=TRUE) +PipedWater1[,Weight:=NULL] +write.xlsx(PipedWater1, "D:/R/Poors_Rural_home.xlsx",sheetName = "PipedWater1",append = TRUE) + +PipedWater<-CBN_Rural[,PipedWater:=weighted.mean(PipedWater,Weight),by=FinalPoor][order(FinalPoor)] +PipedWater<-PipedWater[,.(PipedWater,FinalPoor,Weight)] +PipedWater3<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PipedWater3[,Weight:=NULL] +write.xlsx(PipedWater3, "D:/R/Poors_Rural_home.xlsx",sheetName = "PipedWater2",append = TRUE) + + +##### PipedGas ##### +PipedGas<-CBN_NonPoor_Rural[,PipedGas_Poors:=weighted.mean(PipedGas,Weight),by=NewArea][order(NewArea)] +PipedGas<-PipedGas[,.(PipedGas_Poors,NewArea,Weight)] +PipedGas1<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PipedGas1[,Weight:=NULL] + +PipedGas<-CBN_Poor_Rural[,PipedGas:=weighted.mean(PipedGas,Weight),by=NewArea][order(NewArea)] +PipedGas<-PipedGas[,.(PipedGas,NewArea,Weight)] +PipedGas2<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PipedGas1<-merge(PipedGas1,PipedGas2,by =c("NewArea"),all.x=TRUE) +PipedGas1[,Weight:=NULL] +write.xlsx(PipedGas1, "D:/R/Poors_Rural_home.xlsx",sheetName = "PipedGas1",append = TRUE) + +PipedGas<-CBN_Rural[,PipedGas:=weighted.mean(PipedGas,Weight),by=FinalPoor][order(FinalPoor)] +PipedGas<-PipedGas[,.(PipedGas,FinalPoor,Weight)] +PipedGas3<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PipedGas3[,Weight:=NULL] +write.xlsx(PipedGas3, "D:/R/Poors_Rural_home.xlsx",sheetName = "PipedGas2",append = TRUE) + +##### Telephone ##### +Telephone<-CBN_NonPoor_Rural[,Telephone_Poors:=weighted.mean(Telephone,Weight),by=NewArea][order(NewArea)] +Telephone<-Telephone[,.(Telephone_Poors,NewArea,Weight)] +Telephone1<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Telephone1[,Weight:=NULL] + +Telephone<-CBN_Poor_Rural[,Telephone:=weighted.mean(Telephone,Weight),by=NewArea][order(NewArea)] +Telephone<-Telephone[,.(Telephone,NewArea,Weight)] +Telephone2<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Telephone1<-merge(Telephone1,Telephone2,by =c("NewArea"),all.x=TRUE) +Telephone1[,Weight:=NULL] +write.xlsx(Telephone1, "D:/R/Poors_Rural_home.xlsx",sheetName = "Telephone1",append = TRUE) + +Telephone<-CBN_Rural[,Telephone:=weighted.mean(Telephone,Weight),by=FinalPoor][order(FinalPoor)] +Telephone<-Telephone[,.(Telephone,FinalPoor,Weight)] +Telephone3<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Telephone3[,Weight:=NULL] +write.xlsx(Telephone3, "D:/R/Poors_Rural_home.xlsx",sheetName = "Telephone2",append = TRUE) + +##### Internet ##### +Internet<-CBN_NonPoor_Rural[,Internet_Poors:=weighted.mean(Internet,Weight),by=NewArea][order(NewArea)] +Internet<-Internet[,.(Internet_Poors,NewArea,Weight)] +Internet1<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Internet1[,Weight:=NULL] + +Internet<-CBN_Poor_Rural[,Internet:=weighted.mean(Internet,Weight),by=NewArea][order(NewArea)] +Internet<-Internet[,.(Internet,NewArea,Weight)] +Internet2<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Internet1<-merge(Internet1,Internet2,by =c("NewArea"),all.x=TRUE) +Internet1[,Weight:=NULL] +write.xlsx(Internet1, "D:/R/Poors_Rural_home.xlsx",sheetName = "Internet1",append = TRUE) + +Internet<-CBN_Rural[,Internet:=weighted.mean(Internet,Weight),by=FinalPoor][order(FinalPoor)] +Internet<-Internet[,.(Internet,FinalPoor,Weight)] +Internet3<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Internet3[,Weight:=NULL] +write.xlsx(Internet3, "D:/R/Poors_Rural_home.xlsx",sheetName = "Internet2",append = TRUE) + +##### Car ##### +Car<-CBN_NonPoor_Rural[,Car_Poors:=weighted.mean(Car,Weight),by=NewArea][order(NewArea)] +Car<-Car[,.(Car_Poors,NewArea,Weight)] +Car1<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Car1[,Weight:=NULL] + +Car<-CBN_Poor_Rural[,Car:=weighted.mean(Car,Weight),by=NewArea][order(NewArea)] +Car<-Car[,.(Car,NewArea,Weight)] +Car2<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Car1<-merge(Car1,Car2,by =c("NewArea"),all.x=TRUE) +Car1[,Weight:=NULL] +write.xlsx(Car1, "D:/R/Poors_Rural_home.xlsx",sheetName = "Car1",append = TRUE) + +Car<-CBN_Rural[,Car:=weighted.mean(Car,Weight),by=FinalPoor][order(FinalPoor)] +Car<-Car[,.(Car,FinalPoor,Weight)] +Car3<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Car3[,Weight:=NULL] +write.xlsx(Car3, "D:/R/Poors_Rural_home.xlsx",sheetName = "Car2",append = TRUE) + +##### PC ##### +PC<-CBN_NonPoor_Rural[,PC_Poors:=weighted.mean(PC,Weight),by=NewArea][order(NewArea)] +PC<-PC[,.(PC_Poors,NewArea,Weight)] +PC1<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PC1[,Weight:=NULL] + +PC<-CBN_Poor_Rural[,PC:=weighted.mean(PC,Weight),by=NewArea][order(NewArea)] +PC<-PC[,.(PC,NewArea,Weight)] +PC2<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PC1<-merge(PC1,PC2,by =c("NewArea"),all.x=TRUE) +PC1[,Weight:=NULL] +write.xlsx(PC1, "D:/R/Poors_Rural_home.xlsx",sheetName = "PC1",append = TRUE) + +PC<-CBN_Rural[,PC:=weighted.mean(PC,Weight),by=FinalPoor][order(FinalPoor)] +PC<-PC[,.(PC,FinalPoor,Weight)] +PC3<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PC3[,Weight:=NULL] +write.xlsx(PC3, "D:/R/Poors_Rural_home.xlsx",sheetName = "PC2",append = TRUE) + +##### Cell ##### +Cell<-CBN_NonPoor_Rural[,Cell_Poors:=weighted.mean(Cell,Weight),by=NewArea][order(NewArea)] +Cell<-Cell[,.(Cell_Poors,NewArea,Weight)] +Cell1<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Cell1[,Weight:=NULL] + +Cell<-CBN_Poor_Rural[,Cell:=weighted.mean(Cell,Weight),by=NewArea][order(NewArea)] +Cell<-Cell[,.(Cell,NewArea,Weight)] +Cell2<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Cell1<-merge(Cell1,Cell2,by =c("NewArea"),all.x=TRUE) +Cell1[,Weight:=NULL] +write.xlsx(Cell1, "D:/R/Poors_Rural_home.xlsx",sheetName = "Cell1",append = TRUE) + +Cell<-CBN_Rural[,Cell:=weighted.mean(Cell,Weight),by=FinalPoor][order(FinalPoor)] +Cell<-Cell[,.(Cell,FinalPoor,Weight)] +Cell3<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Cell3[,Weight:=NULL] +write.xlsx(Cell3, "D:/R/Poors_Rural_home.xlsx",sheetName = "Cell2",append = TRUE) + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/83-Poor properties_Home_Urban.R b/R/Archive/November 2019/83-Poor properties_Home_Urban.R new file mode 100644 index 00000000..33f0885b --- /dev/null +++ b/R/Archive/November 2019/83-Poor properties_Home_Urban.R @@ -0,0 +1,269 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + #Load Data + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) + UNewFinalPoor<-NewFinalPoor[Region=="Urban"] + RNewFinalPoor<-NewFinalPoor[Region=="Rural"] + + #Add house properties + T95P2 <- read_dta("D:/R/T95P2.dta") + R95P2 <- read_dta("D:/R/R95P2.dta") + U95P2 <- read_dta("D:/R/U95P2.dta") + + CBN95<-merge(NewFinalPoor,T95P2,by =c("HHID"),all.x=TRUE) + CBN_Urban<-merge(UNewFinalPoor,U95P2,by =c("HHID"),all.x=TRUE) + CBN_Rural<-merge(RNewFinalPoor,R95P2,by =c("HHID"),all.x=TRUE) + + CBN_Poor95<-CBN95[FinalPoor==1] + CBN_Poor_Urban<-CBN_Urban[FinalPoor==1] + CBN_Poor_Rural<-CBN_Rural[FinalPoor==1] + + + CBN_NonPoor_Urban<-CBN_Urban[FinalPoor==0] + CBN_NonPoor_Rural<-CBN_Rural[FinalPoor==0] + CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + + +##### Hoese Conditions ##### +Area_Per<-CBN_NonPoor_Urban[,Area_Per1:=weighted.mean(Area/Size,Weight),by=NewArea][order(NewArea)] +Area_Per<-Area_Per[,.(Area_Per1,NewArea,Weight)] +Area_Per1<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Area_Per1[,Weight:=NULL] + +Area_Per<-CBN_Poor_Urban[,Area_Per2:=weighted.mean(Area/Size,Weight),by=NewArea][order(NewArea)] +Area_Per<-Area_Per[,.(Area_Per2,NewArea,Weight)] +Area_Per2<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Area_Per2[,Weight:=NULL] + +Area_Per1<-merge(Area_Per1,Area_Per2,by =c("NewArea"),all.x=TRUE) +write.xlsx(Area_Per1, "D:/R/Poors_Urban_home.xlsx",sheetName = "Area_Per1") + +Area_Per<-CBN_Urban[,Area_Per:=weighted.mean(Area/Size,Weight),by=FinalPoor][order(FinalPoor)] +Area_Per<-Area_Per[,.(Area_Per,FinalPoor,Weight)] +Area_Per<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Area_Per[,Weight:=NULL] +write.xlsx(Area_Per, "D:/R/Poors_Urban_home.xlsx",sheetName = "Area_Per2",append = TRUE) + +Rooms_Per<-CBN_NonPoor_Urban[,Rooms_Per1:=weighted.mean(Rooms/Size,Weight),by=NewArea][order(NewArea)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per1,NewArea,Weight)] +Rooms_Per1<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Rooms_Per1[,Weight:=NULL] + +Rooms_Per<-CBN_Poor_Urban[,Rooms_Per2:=weighted.mean(Rooms/Size,Weight),by=NewArea][order(NewArea)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per2,NewArea,Weight)] +Rooms_Per2<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Rooms_Per2[,Weight:=NULL] + +Rooms_Per1<-merge(Rooms_Per1,Rooms_Per2,by =c("NewArea"),all.x=TRUE) +write.xlsx(Rooms_Per1, "D:/R/Poors_Urban_home.xlsx",sheetName = "Rooms_Per1",append = TRUE) + +Rooms_Per<-CBN_Urban[,Rooms_Per:=weighted.mean(Rooms/Size,Weight),by=FinalPoor][order(FinalPoor)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per,FinalPoor,Weight)] +Rooms_Per<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Rooms_Per[,Weight:=NULL] +write.xlsx(Rooms_Per, "D:/R/Poors_Urban_home.xlsx",sheetName = "Rooms_Per2",append = TRUE) + +MetrPrice<-CBN_NonPoor_Urban[,MetrPrice1:=weighted.mean(MetrPrice,Weight),by=NewArea][order(NewArea)] +MetrPrice<-MetrPrice[,.(MetrPrice1,NewArea,Weight)] +MetrPrice1<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +MetrPrice1[,Weight:=NULL] + +MetrPrice<-CBN_Poor_Urban[,MetrPrice2:=weighted.mean(MetrPrice,Weight),by=NewArea][order(NewArea)] +MetrPrice<-MetrPrice[,.(MetrPrice2,NewArea,Weight)] +MetrPrice2<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +MetrPrice2[,Weight:=NULL] + +MetrPrice1<-merge(MetrPrice1,MetrPrice2,by =c("NewArea"),all.x=TRUE) +write.xlsx(MetrPrice1, "D:/R/Poors_Urban_home.xlsx",sheetName = "MetrPrice1",append = TRUE) + +MetrPrice<-CBN_Urban[,MetrPrice:=weighted.mean(MetrPrice,Weight),by=FinalPoor][order(FinalPoor)] +MetrPrice<-MetrPrice[,.(MetrPrice,FinalPoor,Weight)] +MetrPrice<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +MetrPrice[,Weight:=NULL] +write.xlsx(MetrPrice, "D:/R/Poors_Urban_home.xlsx",sheetName = "MetrPrice2",append = TRUE) + +##### Electricity ##### +Electricity<-CBN_NonPoor_Urban[,Electricity_Poors:=weighted.mean(Electricity,Weight),by=NewArea][order(NewArea)] +Electricity<-Electricity[,.(Electricity_Poors,NewArea,Weight)] +Electricity1<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Electricity1[,Weight:=NULL] + +Electricity<-CBN_Poor_Urban[,Electricity:=weighted.mean(Electricity,Weight),by=NewArea][order(NewArea)] +Electricity<-Electricity[,.(Electricity,NewArea,Weight)] +Electricity2<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Electricity1<-merge(Electricity1,Electricity2,by =c("NewArea"),all.x=TRUE) +Electricity1[,Weight:=NULL] +write.xlsx(Electricity1, "D:/R/Poors_Urban_home.xlsx",sheetName = "Electricity1",append = TRUE) + +Electricity<-CBN_Urban[,Electricity:=weighted.mean(Electricity,Weight),by=FinalPoor][order(FinalPoor)] +Electricity<-Electricity[,.(Electricity,FinalPoor,Weight)] +Electricity3<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Electricity3[,Weight:=NULL] +write.xlsx(Electricity3, "D:/R/Poors_Urban_home.xlsx",sheetName = "Electricity2",append = TRUE) + +##### PipedWater ##### +PipedWater<-CBN_NonPoor_Urban[,PipedWater_Poors:=weighted.mean(PipedWater,Weight),by=NewArea][order(NewArea)] +PipedWater<-PipedWater[,.(PipedWater_Poors,NewArea,Weight)] +PipedWater1<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PipedWater1[,Weight:=NULL] + +PipedWater<-CBN_Poor_Urban[,PipedWater:=weighted.mean(PipedWater,Weight),by=NewArea][order(NewArea)] +PipedWater<-PipedWater[,.(PipedWater,NewArea,Weight)] +PipedWater2<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PipedWater1<-merge(PipedWater1,PipedWater2,by =c("NewArea"),all.x=TRUE) +PipedWater1[,Weight:=NULL] +write.xlsx(PipedWater1, "D:/R/Poors_Urban_home.xlsx",sheetName = "PipedWater1",append = TRUE) + +PipedWater<-CBN_Urban[,PipedWater:=weighted.mean(PipedWater,Weight),by=FinalPoor][order(FinalPoor)] +PipedWater<-PipedWater[,.(PipedWater,FinalPoor,Weight)] +PipedWater3<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PipedWater3[,Weight:=NULL] +write.xlsx(PipedWater3, "D:/R/Poors_Urban_home.xlsx",sheetName = "PipedWater2",append = TRUE) + + +##### PipedGas ##### +PipedGas<-CBN_NonPoor_Urban[,PipedGas_Poors:=weighted.mean(PipedGas,Weight),by=NewArea][order(NewArea)] +PipedGas<-PipedGas[,.(PipedGas_Poors,NewArea,Weight)] +PipedGas1<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PipedGas1[,Weight:=NULL] + +PipedGas<-CBN_Poor_Urban[,PipedGas:=weighted.mean(PipedGas,Weight),by=NewArea][order(NewArea)] +PipedGas<-PipedGas[,.(PipedGas,NewArea,Weight)] +PipedGas2<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PipedGas1<-merge(PipedGas1,PipedGas2,by =c("NewArea"),all.x=TRUE) +PipedGas1[,Weight:=NULL] +write.xlsx(PipedGas1, "D:/R/Poors_Urban_home.xlsx",sheetName = "PipedGas1",append = TRUE) + +PipedGas<-CBN_Urban[,PipedGas:=weighted.mean(PipedGas,Weight),by=FinalPoor][order(FinalPoor)] +PipedGas<-PipedGas[,.(PipedGas,FinalPoor,Weight)] +PipedGas3<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PipedGas3[,Weight:=NULL] +write.xlsx(PipedGas3, "D:/R/Poors_Urban_home.xlsx",sheetName = "PipedGas2",append = TRUE) + +##### Telephone ##### +Telephone<-CBN_NonPoor_Urban[,Telephone_Poors:=weighted.mean(Telephone,Weight),by=NewArea][order(NewArea)] +Telephone<-Telephone[,.(Telephone_Poors,NewArea,Weight)] +Telephone1<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Telephone1[,Weight:=NULL] + +Telephone<-CBN_Poor_Urban[,Telephone:=weighted.mean(Telephone,Weight),by=NewArea][order(NewArea)] +Telephone<-Telephone[,.(Telephone,NewArea,Weight)] +Telephone2<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Telephone1<-merge(Telephone1,Telephone2,by =c("NewArea"),all.x=TRUE) +Telephone1[,Weight:=NULL] +write.xlsx(Telephone1, "D:/R/Poors_Urban_home.xlsx",sheetName = "Telephone1",append = TRUE) + +Telephone<-CBN_Urban[,Telephone:=weighted.mean(Telephone,Weight),by=FinalPoor][order(FinalPoor)] +Telephone<-Telephone[,.(Telephone,FinalPoor,Weight)] +Telephone3<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Telephone3[,Weight:=NULL] +write.xlsx(Telephone3, "D:/R/Poors_Urban_home.xlsx",sheetName = "Telephone2",append = TRUE) + +##### Internet ##### +Internet<-CBN_NonPoor_Urban[,Internet_Poors:=weighted.mean(Internet,Weight),by=NewArea][order(NewArea)] +Internet<-Internet[,.(Internet_Poors,NewArea,Weight)] +Internet1<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Internet1[,Weight:=NULL] + +Internet<-CBN_Poor_Urban[,Internet:=weighted.mean(Internet,Weight),by=NewArea][order(NewArea)] +Internet<-Internet[,.(Internet,NewArea,Weight)] +Internet2<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Internet1<-merge(Internet1,Internet2,by =c("NewArea"),all.x=TRUE) +Internet1[,Weight:=NULL] +write.xlsx(Internet1, "D:/R/Poors_Urban_home.xlsx",sheetName = "Internet1",append = TRUE) + +Internet<-CBN_Urban[,Internet:=weighted.mean(Internet,Weight),by=FinalPoor][order(FinalPoor)] +Internet<-Internet[,.(Internet,FinalPoor,Weight)] +Internet3<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Internet3[,Weight:=NULL] +write.xlsx(Internet3, "D:/R/Poors_Urban_home.xlsx",sheetName = "Internet2",append = TRUE) + +##### Car ##### +Car<-CBN_NonPoor_Urban[,Car_Poors:=weighted.mean(Car,Weight),by=NewArea][order(NewArea)] +Car<-Car[,.(Car_Poors,NewArea,Weight)] +Car1<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Car1[,Weight:=NULL] + +Car<-CBN_Poor_Urban[,Car:=weighted.mean(Car,Weight),by=NewArea][order(NewArea)] +Car<-Car[,.(Car,NewArea,Weight)] +Car2<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Car1<-merge(Car1,Car2,by =c("NewArea"),all.x=TRUE) +Car1[,Weight:=NULL] +write.xlsx(Car1, "D:/R/Poors_Urban_home.xlsx",sheetName = "Car1",append = TRUE) + +Car<-CBN_Urban[,Car:=weighted.mean(Car,Weight),by=FinalPoor][order(FinalPoor)] +Car<-Car[,.(Car,FinalPoor,Weight)] +Car3<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Car3[,Weight:=NULL] +write.xlsx(Car3, "D:/R/Poors_Urban_home.xlsx",sheetName = "Car2",append = TRUE) + +##### PC ##### +PC<-CBN_NonPoor_Urban[,PC_Poors:=weighted.mean(PC,Weight),by=NewArea][order(NewArea)] +PC<-PC[,.(PC_Poors,NewArea,Weight)] +PC1<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PC1[,Weight:=NULL] + +PC<-CBN_Poor_Urban[,PC:=weighted.mean(PC,Weight),by=NewArea][order(NewArea)] +PC<-PC[,.(PC,NewArea,Weight)] +PC2<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PC1<-merge(PC1,PC2,by =c("NewArea"),all.x=TRUE) +PC1[,Weight:=NULL] +write.xlsx(PC1, "D:/R/Poors_Urban_home.xlsx",sheetName = "PC1",append = TRUE) + +PC<-CBN_Urban[,PC:=weighted.mean(PC,Weight),by=FinalPoor][order(FinalPoor)] +PC<-PC[,.(PC,FinalPoor,Weight)] +PC3<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PC3[,Weight:=NULL] +write.xlsx(PC3, "D:/R/Poors_Urban_home.xlsx",sheetName = "PC2",append = TRUE) + +##### Cell ##### +Cell<-CBN_NonPoor_Urban[,Cell_Poors:=weighted.mean(Cell,Weight),by=NewArea][order(NewArea)] +Cell<-Cell[,.(Cell_Poors,NewArea,Weight)] +Cell1<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Cell1[,Weight:=NULL] + +Cell<-CBN_Poor_Urban[,Cell:=weighted.mean(Cell,Weight),by=NewArea][order(NewArea)] +Cell<-Cell[,.(Cell,NewArea,Weight)] +Cell2<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Cell1<-merge(Cell1,Cell2,by =c("NewArea"),all.x=TRUE) +Cell1[,Weight:=NULL] +write.xlsx(Cell1, "D:/R/Poors_Urban_home.xlsx",sheetName = "Cell1",append = TRUE) + +Cell<-CBN_Urban[,Cell:=weighted.mean(Cell,Weight),by=FinalPoor][order(FinalPoor)] +Cell<-Cell[,.(Cell,FinalPoor,Weight)] +Cell3<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Cell3[,Weight:=NULL] +write.xlsx(Cell3, "D:/R/Poors_Urban_home.xlsx",sheetName = "Cell2",append = TRUE) + +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/84-Poor properties_Home.R b/R/Archive/November 2019/84-Poor properties_Home.R new file mode 100644 index 00000000..0d3a54f2 --- /dev/null +++ b/R/Archive/November 2019/84-Poor properties_Home.R @@ -0,0 +1,268 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + #Load Data + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) + UNewFinalPoor<-NewFinalPoor[Region=="Urban"] + RNewFinalPoor<-NewFinalPoor[Region=="Rural"] + + #Add house properties + T95P2 <- read_dta("D:/R/T95P2.dta") + R95P2 <- read_dta("D:/R/R95P2.dta") + U95P2 <- read_dta("D:/R/U95P2.dta") + + CBN95<-merge(NewFinalPoor,T95P2,by =c("HHID"),all.x=TRUE) + CBN_Urban<-merge(UNewFinalPoor,U95P2,by =c("HHID"),all.x=TRUE) + CBN_Rural<-merge(RNewFinalPoor,R95P2,by =c("HHID"),all.x=TRUE) + + CBN_Poor95<-CBN95[FinalPoor==1] + CBN_Poor_Urban<-CBN_Urban[FinalPoor==1] + CBN_Poor_Rural<-CBN_Rural[FinalPoor==1] + + + CBN_NonPoor_Urban<-CBN_Urban[FinalPoor==0] + CBN_NonPoor_Rural<-CBN_Rural[FinalPoor==0] + CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + +##### Hoese Conditions ##### +Area_Per<-CBN_NonPoor95[,Area_Per1:=weighted.mean(Area/Size,Weight),by=NewArea][order(NewArea)] +Area_Per<-Area_Per[,.(Area_Per1,NewArea,Weight)] +Area_Per1<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Area_Per1[,Weight:=NULL] + +Area_Per<-CBN_Poor95[,Area_Per2:=weighted.mean(Area/Size,Weight),by=NewArea][order(NewArea)] +Area_Per<-Area_Per[,.(Area_Per2,NewArea,Weight)] +Area_Per2<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Area_Per2[,Weight:=NULL] + +Area_Per1<-merge(Area_Per1,Area_Per2,by =c("NewArea"),all.x=TRUE) +write.xlsx(Area_Per1, "D:/R/Poors_home.xlsx",sheetName = "Area_Per1") + +Area_Per<-CBN95[,Area_Per:=weighted.mean(Area/Size,Weight),by=FinalPoor][order(FinalPoor)] +Area_Per<-Area_Per[,.(Area_Per,FinalPoor,Weight)] +Area_Per<-Area_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Area_Per[,Weight:=NULL] +write.xlsx(Area_Per, "D:/R/Poors_home.xlsx",sheetName = "Area_Per2",append = TRUE) + +Rooms_Per<-CBN_NonPoor95[,Rooms_Per1:=weighted.mean(Rooms/Size,Weight),by=NewArea][order(NewArea)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per1,NewArea,Weight)] +Rooms_Per1<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Rooms_Per1[,Weight:=NULL] + +Rooms_Per<-CBN_Poor95[,Rooms_Per2:=weighted.mean(Rooms/Size,Weight),by=NewArea][order(NewArea)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per2,NewArea,Weight)] +Rooms_Per2<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Rooms_Per2[,Weight:=NULL] + +Rooms_Per1<-merge(Rooms_Per1,Rooms_Per2,by =c("NewArea"),all.x=TRUE) +write.xlsx(Rooms_Per1, "D:/R/Poors_home.xlsx",sheetName = "Rooms_Per1",append = TRUE) + +Rooms_Per<-CBN95[,Rooms_Per:=weighted.mean(Rooms/Size,Weight),by=FinalPoor][order(FinalPoor)] +Rooms_Per<-Rooms_Per[,.(Rooms_Per,FinalPoor,Weight)] +Rooms_Per<-Rooms_Per[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Rooms_Per[,Weight:=NULL] +write.xlsx(Rooms_Per, "D:/R/Poors_home.xlsx",sheetName = "Rooms_Per2",append = TRUE) + +MetrPrice<-CBN_NonPoor95[,MetrPrice1:=weighted.mean(MetrPrice,Weight),by=NewArea][order(NewArea)] +MetrPrice<-MetrPrice[,.(MetrPrice1,NewArea,Weight)] +MetrPrice1<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +MetrPrice1[,Weight:=NULL] + +MetrPrice<-CBN_Poor95[,MetrPrice2:=weighted.mean(MetrPrice,Weight),by=NewArea][order(NewArea)] +MetrPrice<-MetrPrice[,.(MetrPrice2,NewArea,Weight)] +MetrPrice2<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +MetrPrice2[,Weight:=NULL] + +MetrPrice1<-merge(MetrPrice1,MetrPrice2,by =c("NewArea"),all.x=TRUE) +write.xlsx(MetrPrice1, "D:/R/Poors_home.xlsx",sheetName = "MetrPrice1",append = TRUE) + +MetrPrice<-CBN95[,MetrPrice:=weighted.mean(MetrPrice,Weight),by=FinalPoor][order(FinalPoor)] +MetrPrice<-MetrPrice[,.(MetrPrice,FinalPoor,Weight)] +MetrPrice<-MetrPrice[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +MetrPrice[,Weight:=NULL] +write.xlsx(MetrPrice, "D:/R/Poors_home.xlsx",sheetName = "MetrPrice2",append = TRUE) + +##### Electricity ##### +Electricity<-CBN_NonPoor95[,Electricity_Poors:=weighted.mean(Electricity,Weight),by=NewArea][order(NewArea)] +Electricity<-Electricity[,.(Electricity_Poors,NewArea,Weight)] +Electricity1<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Electricity1[,Weight:=NULL] + +Electricity<-CBN_Poor95[,Electricity:=weighted.mean(Electricity,Weight),by=NewArea][order(NewArea)] +Electricity<-Electricity[,.(Electricity,NewArea,Weight)] +Electricity2<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Electricity1<-merge(Electricity1,Electricity2,by =c("NewArea"),all.x=TRUE) +Electricity1[,Weight:=NULL] +write.xlsx(Electricity1, "D:/R/Poors_home.xlsx",sheetName = "Electricity1",append = TRUE) + +Electricity<-CBN95[,Electricity:=weighted.mean(Electricity,Weight),by=FinalPoor][order(FinalPoor)] +Electricity<-Electricity[,.(Electricity,FinalPoor,Weight)] +Electricity3<-Electricity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Electricity3[,Weight:=NULL] +write.xlsx(Electricity3, "D:/R/Poors_home.xlsx",sheetName = "Electricity2",append = TRUE) + +##### PipedWater ##### +PipedWater<-CBN_NonPoor95[,PipedWater_Poors:=weighted.mean(PipedWater,Weight),by=NewArea][order(NewArea)] +PipedWater<-PipedWater[,.(PipedWater_Poors,NewArea,Weight)] +PipedWater1<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PipedWater1[,Weight:=NULL] + +PipedWater<-CBN_Poor95[,PipedWater:=weighted.mean(PipedWater,Weight),by=NewArea][order(NewArea)] +PipedWater<-PipedWater[,.(PipedWater,NewArea,Weight)] +PipedWater2<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PipedWater1<-merge(PipedWater1,PipedWater2,by =c("NewArea"),all.x=TRUE) +PipedWater1[,Weight:=NULL] +write.xlsx(PipedWater1, "D:/R/Poors_home.xlsx",sheetName = "PipedWater1",append = TRUE) + +PipedWater<-CBN95[,PipedWater:=weighted.mean(PipedWater,Weight),by=FinalPoor][order(FinalPoor)] +PipedWater<-PipedWater[,.(PipedWater,FinalPoor,Weight)] +PipedWater3<-PipedWater[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PipedWater3[,Weight:=NULL] +write.xlsx(PipedWater3, "D:/R/Poors_home.xlsx",sheetName = "PipedWater2",append = TRUE) + + +##### PipedGas ##### +PipedGas<-CBN_NonPoor95[,PipedGas_Poors:=weighted.mean(PipedGas,Weight),by=NewArea][order(NewArea)] +PipedGas<-PipedGas[,.(PipedGas_Poors,NewArea,Weight)] +PipedGas1<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PipedGas1[,Weight:=NULL] + +PipedGas<-CBN_Poor95[,PipedGas:=weighted.mean(PipedGas,Weight),by=NewArea][order(NewArea)] +PipedGas<-PipedGas[,.(PipedGas,NewArea,Weight)] +PipedGas2<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PipedGas1<-merge(PipedGas1,PipedGas2,by =c("NewArea"),all.x=TRUE) +PipedGas1[,Weight:=NULL] +write.xlsx(PipedGas1, "D:/R/Poors_home.xlsx",sheetName = "PipedGas1",append = TRUE) + +PipedGas<-CBN95[,PipedGas:=weighted.mean(PipedGas,Weight),by=FinalPoor][order(FinalPoor)] +PipedGas<-PipedGas[,.(PipedGas,FinalPoor,Weight)] +PipedGas3<-PipedGas[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PipedGas3[,Weight:=NULL] +write.xlsx(PipedGas3, "D:/R/Poors_home.xlsx",sheetName = "PipedGas2",append = TRUE) + +##### Telephone ##### +Telephone<-CBN_NonPoor95[,Telephone_Poors:=weighted.mean(Telephone,Weight),by=NewArea][order(NewArea)] +Telephone<-Telephone[,.(Telephone_Poors,NewArea,Weight)] +Telephone1<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Telephone1[,Weight:=NULL] + +Telephone<-CBN_Poor95[,Telephone:=weighted.mean(Telephone,Weight),by=NewArea][order(NewArea)] +Telephone<-Telephone[,.(Telephone,NewArea,Weight)] +Telephone2<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Telephone1<-merge(Telephone1,Telephone2,by =c("NewArea"),all.x=TRUE) +Telephone1[,Weight:=NULL] +write.xlsx(Telephone1, "D:/R/Poors_home.xlsx",sheetName = "Telephone1",append = TRUE) + +Telephone<-CBN95[,Telephone:=weighted.mean(Telephone,Weight),by=FinalPoor][order(FinalPoor)] +Telephone<-Telephone[,.(Telephone,FinalPoor,Weight)] +Telephone3<-Telephone[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Telephone3[,Weight:=NULL] +write.xlsx(Telephone3, "D:/R/Poors_home.xlsx",sheetName = "Telephone2",append = TRUE) + +##### Internet ##### +Internet<-CBN_NonPoor95[,Internet_Poors:=weighted.mean(Internet,Weight),by=NewArea][order(NewArea)] +Internet<-Internet[,.(Internet_Poors,NewArea,Weight)] +Internet1<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Internet1[,Weight:=NULL] + +Internet<-CBN_Poor95[,Internet:=weighted.mean(Internet,Weight),by=NewArea][order(NewArea)] +Internet<-Internet[,.(Internet,NewArea,Weight)] +Internet2<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Internet1<-merge(Internet1,Internet2,by =c("NewArea"),all.x=TRUE) +Internet1[,Weight:=NULL] +write.xlsx(Internet1, "D:/R/Poors_home.xlsx",sheetName = "Internet1",append = TRUE) + +Internet<-CBN95[,Internet:=weighted.mean(Internet,Weight),by=FinalPoor][order(FinalPoor)] +Internet<-Internet[,.(Internet,FinalPoor,Weight)] +Internet3<-Internet[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Internet3[,Weight:=NULL] +write.xlsx(Internet3, "D:/R/Poors_home.xlsx",sheetName = "Internet2",append = TRUE) + +##### Car ##### +Car<-CBN_NonPoor95[,Car_Poors:=weighted.mean(Car,Weight),by=NewArea][order(NewArea)] +Car<-Car[,.(Car_Poors,NewArea,Weight)] +Car1<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Car1[,Weight:=NULL] + +Car<-CBN_Poor95[,Car:=weighted.mean(Car,Weight),by=NewArea][order(NewArea)] +Car<-Car[,.(Car,NewArea,Weight)] +Car2<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Car1<-merge(Car1,Car2,by =c("NewArea"),all.x=TRUE) +Car1[,Weight:=NULL] +write.xlsx(Car1, "D:/R/Poors_home.xlsx",sheetName = "Car1",append = TRUE) + +Car<-CBN95[,Car:=weighted.mean(Car,Weight),by=FinalPoor][order(FinalPoor)] +Car<-Car[,.(Car,FinalPoor,Weight)] +Car3<-Car[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Car3[,Weight:=NULL] +write.xlsx(Car3, "D:/R/Poors_home.xlsx",sheetName = "Car2",append = TRUE) + +##### PC ##### +PC<-CBN_NonPoor95[,PC_Poors:=weighted.mean(PC,Weight),by=NewArea][order(NewArea)] +PC<-PC[,.(PC_Poors,NewArea,Weight)] +PC1<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +PC1[,Weight:=NULL] + +PC<-CBN_Poor95[,PC:=weighted.mean(PC,Weight),by=NewArea][order(NewArea)] +PC<-PC[,.(PC,NewArea,Weight)] +PC2<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +PC1<-merge(PC1,PC2,by =c("NewArea"),all.x=TRUE) +PC1[,Weight:=NULL] +write.xlsx(PC1, "D:/R/Poors_home.xlsx",sheetName = "PC1",append = TRUE) + +PC<-CBN95[,PC:=weighted.mean(PC,Weight),by=FinalPoor][order(FinalPoor)] +PC<-PC[,.(PC,FinalPoor,Weight)] +PC3<-PC[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +PC3[,Weight:=NULL] +write.xlsx(PC3, "D:/R/Poors_home.xlsx",sheetName = "PC2",append = TRUE) + +##### Cell ##### +Cell<-CBN_NonPoor95[,Cell_Poors:=weighted.mean(Cell,Weight),by=NewArea][order(NewArea)] +Cell<-Cell[,.(Cell_Poors,NewArea,Weight)] +Cell1<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +Cell1[,Weight:=NULL] + +Cell<-CBN_Poor95[,Cell:=weighted.mean(Cell,Weight),by=NewArea][order(NewArea)] +Cell<-Cell[,.(Cell,NewArea,Weight)] +Cell2<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +Cell1<-merge(Cell1,Cell2,by =c("NewArea"),all.x=TRUE) +Cell1[,Weight:=NULL] +write.xlsx(Cell1, "D:/R/Poors_home.xlsx",sheetName = "Cell1",append = TRUE) + +Cell<-CBN95[,Cell:=weighted.mean(Cell,Weight),by=FinalPoor][order(FinalPoor)] +Cell<-Cell[,.(Cell,FinalPoor,Weight)] +Cell3<-Cell[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +Cell3[,Weight:=NULL] +write.xlsx(Cell3, "D:/R/Poors_home.xlsx",sheetName = "Cell2",append = TRUE) + +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/85-Poor properties_Home2.R b/R/Archive/November 2019/85-Poor properties_Home2.R new file mode 100644 index 00000000..94ec6462 --- /dev/null +++ b/R/Archive/November 2019/85-Poor properties_Home2.R @@ -0,0 +1,349 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + #Load Data + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) + UNewFinalPoor<-NewFinalPoor[Region=="Urban"] + RNewFinalPoor<-NewFinalPoor[Region=="Rural"] + + #Add house properties + T95P2 <- read_dta("D:/R/T95P2.dta") + R95P2 <- read_dta("D:/R/R95P2.dta") + U95P2 <- read_dta("D:/R/U95P2.dta") + + CBN95<-merge(NewFinalPoor,T95P2,by =c("HHID"),all.x=TRUE) + CBN_Urban<-merge(UNewFinalPoor,U95P2,by =c("HHID"),all.x=TRUE) + CBN_Rural<-merge(RNewFinalPoor,R95P2,by =c("HHID"),all.x=TRUE) + + CBN_Poor95<-CBN95[FinalPoor==1] + CBN_Poor_Urban<-CBN_Urban[FinalPoor==1] + CBN_Poor_Rural<-CBN_Rural[FinalPoor==1] + + + CBN_NonPoor_Urban<-CBN_Urban[FinalPoor==0] + CBN_NonPoor_Rural<-CBN_Rural[FinalPoor==0] + CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + +##### HouseOwn ##### + +HouseOwn<-CBN_NonPoor95[,HouseOwn_Poors1:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors1,NewArea,Weight)] +HouseOwn1<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +HouseOwn1[,Weight:=NULL] + +HouseOwn<-CBN_NonPoor95[,HouseOwn_Poors2:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors2,NewArea,Weight)] +HouseOwn2<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor95[,HouseOwn_Poors3:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors3,NewArea,Weight)] +HouseOwn3<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor95[,HouseOwn_Poors4:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors4,NewArea,Weight)] +HouseOwn4<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor95[,HouseOwn_Poors5:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors5,NewArea,Weight)] +HouseOwn5<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor95[,HouseOwn_Poors6:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors6,NewArea,Weight)] +HouseOwn6<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor95[,HouseOwn_Poors7:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors7,NewArea,Weight)] +HouseOwn7<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +HouseOwn7[,Weight:=NULL] + +HouseOwn<-CBN_Poor95[,HouseOwn_Poors8:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors8,NewArea,Weight)] +HouseOwn8<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor95[,HouseOwn_Poors9:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors9,NewArea,Weight)] +HouseOwn9<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor95[,HouseOwn_Poors10:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors10,NewArea,Weight)] +HouseOwn10<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor95[,HouseOwn_Poors11:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors11,NewArea,Weight)] +HouseOwn11<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor95[,HouseOwn_Poors12:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors12,NewArea,Weight)] +HouseOwn12<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn1<-merge(HouseOwn1,HouseOwn2,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn3,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn4,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn5,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn6,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn7,by =c("NewArea"),all.x=TRUE) +HouseOwn1<-merge(HouseOwn1,HouseOwn8,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn9,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn10,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn11,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn12,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +write.xlsx(HouseOwn1, "D:/R/Poors_House2.xlsx",sheetName = "HouseOwn1") + + +HouseOwn13<-CBN95[,HouseOwn1:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn13<-HouseOwn13[,.(HouseOwn1,FinalPoor,Weight)] +HouseOwn13<-HouseOwn13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn13[,Weight:=NULL] + +HouseOwn14<-CBN95[,HouseOwn2:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn14<-HouseOwn14[,.(HouseOwn2,FinalPoor,Weight)] +HouseOwn14<-HouseOwn14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn14[,Weight:=NULL] + +HouseOwn15<-CBN95[,HouseOwn3:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn15<-HouseOwn15[,.(HouseOwn3,FinalPoor,Weight)] +HouseOwn15<-HouseOwn15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn15[,Weight:=NULL] + +HouseOwn16<-CBN95[,HouseOwn4:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn16<-HouseOwn16[,.(HouseOwn4,FinalPoor,Weight)] +HouseOwn16<-HouseOwn16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn16[,Weight:=NULL] + +HouseOwn17<-CBN95[,HouseOwn5:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn17<-HouseOwn17[,.(HouseOwn5,FinalPoor,Weight)] +HouseOwn17<-HouseOwn17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn17[,Weight:=NULL] + +HouseOwn18<-CBN95[,HouseOwn6:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn18<-HouseOwn18[,.(HouseOwn6,FinalPoor,Weight)] +HouseOwn18<-HouseOwn18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn18[,Weight:=NULL] + +HouseOwn2<-merge(HouseOwn13,HouseOwn14,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn15,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn16,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn17,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn18,by =c("FinalPoor"),all.x=TRUE) +write.xlsx(HouseOwn2, "D:/R/Poors_House2.xlsx",sheetName = "HouseOwn2",append = TRUE) + +##### skeleton ##### + +skeleton<-CBN_NonPoor95[,skeleton_Poors1:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors1,NewArea,Weight)] +skeleton1<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +skeleton1[,Weight:=NULL] + +skeleton<-CBN_NonPoor95[,skeleton_Poors2:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors2,NewArea,Weight)] +skeleton2<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor95[,skeleton_Poors3:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors3,NewArea,Weight)] +skeleton3<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor95[,skeleton_Poors4:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors4,NewArea,Weight)] +skeleton4<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor95[,skeleton_Poors5:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors5,NewArea,Weight)] +skeleton5<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor95[,skeleton_Poors6:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors6,NewArea,Weight)] +skeleton6<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor95[,skeleton_Poors13:=weighted.mean(ifelse(skeleton==7,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors13,NewArea,Weight)] +skeleton13<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor95[,skeleton_Poors14:=weighted.mean(ifelse(skeleton==8,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors14,NewArea,Weight)] +skeleton14<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor95[,skeleton_Poors15:=weighted.mean(ifelse(skeleton==20,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors15,NewArea,Weight)] +skeleton15<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor95[,skeleton_Poors16:=weighted.mean(ifelse(skeleton==10,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors16,NewArea,Weight)] +skeleton16<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + + +skeleton<-CBN_Poor95[,skeleton_Poors7:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors7,NewArea,Weight)] +skeleton7<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +skeleton7[,Weight:=NULL] + +skeleton<-CBN_Poor95[,skeleton_Poors8:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors8,NewArea,Weight)] +skeleton8<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor95[,skeleton_Poors9:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors9,NewArea,Weight)] +skeleton9<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor95[,skeleton_Poors10:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors10,NewArea,Weight)] +skeleton10<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor95[,skeleton_Poors11:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors11,NewArea,Weight)] +skeleton11<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor95[,skeleton_Poors12:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors12,NewArea,Weight)] +skeleton12<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor95[,skeleton_Poors17:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors17,NewArea,Weight)] +skeleton17<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor95[,skeleton_Poors18:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors18,NewArea,Weight)] +skeleton18<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor95[,skeleton_Poors19:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors19,NewArea,Weight)] +skeleton19<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor95[,skeleton_Poors20:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors20,NewArea,Weight)] +skeleton20<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton1<-merge(skeleton1,skeleton2,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton3,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton4,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton5,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton6,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton13,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton14,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton15,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton16,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton7,by =c("NewArea"),all.x=TRUE) +skeleton1<-merge(skeleton1,skeleton8,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton9,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton10,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton11,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton12,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton17,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton18,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton19,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton20,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +write.xlsx(skeleton1, "D:/R/Poors_House2.xlsx",sheetName = "skeleton1",append = TRUE) + + +skeleton13<-CBN95[,skeleton1:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton13<-skeleton13[,.(skeleton1,FinalPoor,Weight)] +skeleton13<-skeleton13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton13[,Weight:=NULL] + +skeleton14<-CBN95[,skeleton2:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton14<-skeleton14[,.(skeleton2,FinalPoor,Weight)] +skeleton14<-skeleton14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton14[,Weight:=NULL] + +skeleton15<-CBN95[,skeleton3:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton15<-skeleton15[,.(skeleton3,FinalPoor,Weight)] +skeleton15<-skeleton15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton15[,Weight:=NULL] + +skeleton16<-CBN95[,skeleton4:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton16<-skeleton16[,.(skeleton4,FinalPoor,Weight)] +skeleton16<-skeleton16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton16[,Weight:=NULL] + +skeleton17<-CBN95[,skeleton5:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton17<-skeleton17[,.(skeleton5,FinalPoor,Weight)] +skeleton17<-skeleton17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton17[,Weight:=NULL] + +skeleton18<-CBN95[,skeleton6:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton18<-skeleton18[,.(skeleton6,FinalPoor,Weight)] +skeleton18<-skeleton18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton18[,Weight:=NULL] + +skeleton19<-CBN95[,skeleton7:=weighted.mean(ifelse(skeleton==7,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton19<-skeleton19[,.(skeleton7,FinalPoor,Weight)] +skeleton19<-skeleton19[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton19[,Weight:=NULL] + +skeleton20<-CBN95[,skeleton8:=weighted.mean(ifelse(skeleton==8,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton20<-skeleton20[,.(skeleton8,FinalPoor,Weight)] +skeleton20<-skeleton20[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton20[,Weight:=NULL] + +skeleton21<-CBN95[,skeleton10:=weighted.mean(ifelse(skeleton==10,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton21<-skeleton21[,.(skeleton10,FinalPoor,Weight)] +skeleton21<-skeleton21[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton21[,Weight:=NULL] + +skeleton22<-CBN95[,skeleton20:=weighted.mean(ifelse(skeleton==20,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton22<-skeleton22[,.(skeleton20,FinalPoor,Weight)] +skeleton22<-skeleton22[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton22[,Weight:=NULL] + +skeleton2<-merge(skeleton13,skeleton14,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton15,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton16,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton17,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton18,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton19,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton20,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton21,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton22,by =c("FinalPoor"),all.x=TRUE) +write.xlsx(skeleton2, "D:/R/Poors_House2.xlsx",sheetName = "skeleton2",append = TRUE) + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/86-Poor properties_Home2_Rural.R b/R/Archive/November 2019/86-Poor properties_Home2_Rural.R new file mode 100644 index 00000000..2b36ed91 --- /dev/null +++ b/R/Archive/November 2019/86-Poor properties_Home2_Rural.R @@ -0,0 +1,348 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + #Load Data + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) + UNewFinalPoor<-NewFinalPoor[Region=="Urban"] + RNewFinalPoor<-NewFinalPoor[Region=="Rural"] + + #Add house properties + T95P2 <- read_dta("D:/R/T95P2.dta") + R95P2 <- read_dta("D:/R/R95P2.dta") + U95P2 <- read_dta("D:/R/U95P2.dta") + + CBN95<-merge(NewFinalPoor,T95P2,by =c("HHID"),all.x=TRUE) + CBN_Urban<-merge(UNewFinalPoor,U95P2,by =c("HHID"),all.x=TRUE) + CBN_Rural<-merge(RNewFinalPoor,R95P2,by =c("HHID"),all.x=TRUE) + + CBN_Poor95<-CBN95[FinalPoor==1] + CBN_Poor_Urban<-CBN_Urban[FinalPoor==1] + CBN_Poor_Rural<-CBN_Rural[FinalPoor==1] + + + CBN_NonPoor_Urban<-CBN_Urban[FinalPoor==0] + CBN_NonPoor_Rural<-CBN_Rural[FinalPoor==0] + CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + +##### HouseOwn ##### + +HouseOwn<-CBN_NonPoor_Rural[,HouseOwn_Poors1:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors1,NewArea,Weight)] +HouseOwn1<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +HouseOwn1[,Weight:=NULL] + +HouseOwn<-CBN_NonPoor_Rural[,HouseOwn_Poors2:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors2,NewArea,Weight)] +HouseOwn2<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor_Rural[,HouseOwn_Poors3:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors3,NewArea,Weight)] +HouseOwn3<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor_Rural[,HouseOwn_Poors4:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors4,NewArea,Weight)] +HouseOwn4<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor_Rural[,HouseOwn_Poors5:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors5,NewArea,Weight)] +HouseOwn5<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor_Rural[,HouseOwn_Poors6:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors6,NewArea,Weight)] +HouseOwn6<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Rural[,HouseOwn_Poors7:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors7,NewArea,Weight)] +HouseOwn7<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +HouseOwn7[,Weight:=NULL] + +HouseOwn<-CBN_Poor_Rural[,HouseOwn_Poors8:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors8,NewArea,Weight)] +HouseOwn8<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Rural[,HouseOwn_Poors9:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors9,NewArea,Weight)] +HouseOwn9<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Rural[,HouseOwn_Poors10:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors10,NewArea,Weight)] +HouseOwn10<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Rural[,HouseOwn_Poors11:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors11,NewArea,Weight)] +HouseOwn11<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Rural[,HouseOwn_Poors12:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors12,NewArea,Weight)] +HouseOwn12<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn1<-merge(HouseOwn1,HouseOwn2,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn3,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn4,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn5,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn6,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn7,by =c("NewArea"),all.x=TRUE) +HouseOwn1<-merge(HouseOwn1,HouseOwn8,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn9,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn10,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn11,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn12,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +write.xlsx(HouseOwn1, "D:/R/Poors_House2_Rural.xlsx",sheetName = "HouseOwn1") + + +HouseOwn13<-CBN_Rural[,HouseOwn1:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn13<-HouseOwn13[,.(HouseOwn1,FinalPoor,Weight)] +HouseOwn13<-HouseOwn13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn13[,Weight:=NULL] + +HouseOwn14<-CBN_Rural[,HouseOwn2:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn14<-HouseOwn14[,.(HouseOwn2,FinalPoor,Weight)] +HouseOwn14<-HouseOwn14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn14[,Weight:=NULL] + +HouseOwn15<-CBN_Rural[,HouseOwn3:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn15<-HouseOwn15[,.(HouseOwn3,FinalPoor,Weight)] +HouseOwn15<-HouseOwn15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn15[,Weight:=NULL] + +HouseOwn16<-CBN_Rural[,HouseOwn4:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn16<-HouseOwn16[,.(HouseOwn4,FinalPoor,Weight)] +HouseOwn16<-HouseOwn16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn16[,Weight:=NULL] + +HouseOwn17<-CBN_Rural[,HouseOwn5:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn17<-HouseOwn17[,.(HouseOwn5,FinalPoor,Weight)] +HouseOwn17<-HouseOwn17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn17[,Weight:=NULL] + +HouseOwn18<-CBN_Rural[,HouseOwn6:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn18<-HouseOwn18[,.(HouseOwn6,FinalPoor,Weight)] +HouseOwn18<-HouseOwn18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn18[,Weight:=NULL] + +HouseOwn2<-merge(HouseOwn13,HouseOwn14,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn15,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn16,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn17,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn18,by =c("FinalPoor"),all.x=TRUE) +write.xlsx(HouseOwn2, "D:/R/Poors_House2_Rural.xlsx",sheetName = "HouseOwn2",append = TRUE) + +##### skeleton ##### + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors1:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors1,NewArea,Weight)] +skeleton1<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +skeleton1[,Weight:=NULL] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors2:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors2,NewArea,Weight)] +skeleton2<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors3:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors3,NewArea,Weight)] +skeleton3<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors4:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors4,NewArea,Weight)] +skeleton4<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors5:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors5,NewArea,Weight)] +skeleton5<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors6:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors6,NewArea,Weight)] +skeleton6<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors13:=weighted.mean(ifelse(skeleton==7,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors13,NewArea,Weight)] +skeleton13<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors14:=weighted.mean(ifelse(skeleton==8,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors14,NewArea,Weight)] +skeleton14<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors15:=weighted.mean(ifelse(skeleton==20,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors15,NewArea,Weight)] +skeleton15<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Rural[,skeleton_Poors16:=weighted.mean(ifelse(skeleton==10,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors16,NewArea,Weight)] +skeleton16<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + + +skeleton<-CBN_Poor_Rural[,skeleton_Poors7:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors7,NewArea,Weight)] +skeleton7<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +skeleton7[,Weight:=NULL] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors8:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors8,NewArea,Weight)] +skeleton8<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors9:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors9,NewArea,Weight)] +skeleton9<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors10:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors10,NewArea,Weight)] +skeleton10<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors11:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors11,NewArea,Weight)] +skeleton11<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors12:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors12,NewArea,Weight)] +skeleton12<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors17:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors17,NewArea,Weight)] +skeleton17<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors18:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors18,NewArea,Weight)] +skeleton18<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors19:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors19,NewArea,Weight)] +skeleton19<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Rural[,skeleton_Poors20:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors20,NewArea,Weight)] +skeleton20<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton1<-merge(skeleton1,skeleton2,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton3,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton4,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton5,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton6,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton13,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton14,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton15,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton16,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton7,by =c("NewArea"),all.x=TRUE) +skeleton1<-merge(skeleton1,skeleton8,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton9,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton10,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton11,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton12,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton17,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton18,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton19,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton20,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +write.xlsx(skeleton1, "D:/R/Poors_House2_Rural.xlsx",sheetName = "skeleton1",append = TRUE) + + +skeleton13<-CBN_Rural[,skeleton1:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton13<-skeleton13[,.(skeleton1,FinalPoor,Weight)] +skeleton13<-skeleton13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton13[,Weight:=NULL] + +skeleton14<-CBN_Rural[,skeleton2:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton14<-skeleton14[,.(skeleton2,FinalPoor,Weight)] +skeleton14<-skeleton14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton14[,Weight:=NULL] + +skeleton15<-CBN_Rural[,skeleton3:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton15<-skeleton15[,.(skeleton3,FinalPoor,Weight)] +skeleton15<-skeleton15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton15[,Weight:=NULL] + +skeleton16<-CBN_Rural[,skeleton4:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton16<-skeleton16[,.(skeleton4,FinalPoor,Weight)] +skeleton16<-skeleton16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton16[,Weight:=NULL] + +skeleton17<-CBN_Rural[,skeleton5:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton17<-skeleton17[,.(skeleton5,FinalPoor,Weight)] +skeleton17<-skeleton17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton17[,Weight:=NULL] + +skeleton18<-CBN_Rural[,skeleton6:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton18<-skeleton18[,.(skeleton6,FinalPoor,Weight)] +skeleton18<-skeleton18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton18[,Weight:=NULL] + +skeleton19<-CBN_Rural[,skeleton7:=weighted.mean(ifelse(skeleton==7,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton19<-skeleton19[,.(skeleton7,FinalPoor,Weight)] +skeleton19<-skeleton19[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton19[,Weight:=NULL] + +skeleton20<-CBN_Rural[,skeleton8:=weighted.mean(ifelse(skeleton==8,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton20<-skeleton20[,.(skeleton8,FinalPoor,Weight)] +skeleton20<-skeleton20[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton20[,Weight:=NULL] + +skeleton21<-CBN_Rural[,skeleton10:=weighted.mean(ifelse(skeleton==10,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton21<-skeleton21[,.(skeleton10,FinalPoor,Weight)] +skeleton21<-skeleton21[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton21[,Weight:=NULL] + +skeleton22<-CBN_Rural[,skeleton20:=weighted.mean(ifelse(skeleton==20,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton22<-skeleton22[,.(skeleton20,FinalPoor,Weight)] +skeleton22<-skeleton22[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton22[,Weight:=NULL] + +skeleton2<-merge(skeleton13,skeleton14,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton15,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton16,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton17,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton18,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton19,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton20,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton21,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton22,by =c("FinalPoor"),all.x=TRUE) +write.xlsx(skeleton2, "D:/R/Poors_House2_Rural.xlsx",sheetName = "skeleton2",append = TRUE) + +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/87-Poor properties_Home2_Urban.R b/R/Archive/November 2019/87-Poor properties_Home2_Urban.R new file mode 100644 index 00000000..d3a48931 --- /dev/null +++ b/R/Archive/November 2019/87-Poor properties_Home2_Urban.R @@ -0,0 +1,348 @@ +#Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(xlsx) +library(haven) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + #Load Data + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) + UNewFinalPoor<-NewFinalPoor[Region=="Urban"] + RNewFinalPoor<-NewFinalPoor[Region=="Rural"] + + #Add house properties + T95P2 <- read_dta("D:/R/T95P2.dta") + R95P2 <- read_dta("D:/R/R95P2.dta") + U95P2 <- read_dta("D:/R/U95P2.dta") + + CBN95<-merge(NewFinalPoor,T95P2,by =c("HHID"),all.x=TRUE) + CBN_Urban<-merge(UNewFinalPoor,U95P2,by =c("HHID"),all.x=TRUE) + CBN_Rural<-merge(RNewFinalPoor,R95P2,by =c("HHID"),all.x=TRUE) + + CBN_Poor95<-CBN95[FinalPoor==1] + CBN_Poor_Urban<-CBN_Urban[FinalPoor==1] + CBN_Poor_Rural<-CBN_Rural[FinalPoor==1] + + + CBN_NonPoor_Urban<-CBN_Urban[FinalPoor==0] + CBN_NonPoor_Rural<-CBN_Rural[FinalPoor==0] + CBN_NonPoor95<-rbind(CBN_NonPoor_Urban,CBN_NonPoor_Rural) + +##### HouseOwn ##### + +HouseOwn<-CBN_NonPoor_Urban[,HouseOwn_Poors1:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors1,NewArea,Weight)] +HouseOwn1<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +HouseOwn1[,Weight:=NULL] + +HouseOwn<-CBN_NonPoor_Urban[,HouseOwn_Poors2:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors2,NewArea,Weight)] +HouseOwn2<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor_Urban[,HouseOwn_Poors3:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors3,NewArea,Weight)] +HouseOwn3<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor_Urban[,HouseOwn_Poors4:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors4,NewArea,Weight)] +HouseOwn4<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor_Urban[,HouseOwn_Poors5:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors5,NewArea,Weight)] +HouseOwn5<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_NonPoor_Urban[,HouseOwn_Poors6:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors6,NewArea,Weight)] +HouseOwn6<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Urban[,HouseOwn_Poors7:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors7,NewArea,Weight)] +HouseOwn7<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +HouseOwn7[,Weight:=NULL] + +HouseOwn<-CBN_Poor_Urban[,HouseOwn_Poors8:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors8,NewArea,Weight)] +HouseOwn8<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Urban[,HouseOwn_Poors9:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors9,NewArea,Weight)] +HouseOwn9<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Urban[,HouseOwn_Poors10:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors10,NewArea,Weight)] +HouseOwn10<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Urban[,HouseOwn_Poors11:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors11,NewArea,Weight)] +HouseOwn11<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn<-CBN_Poor_Urban[,HouseOwn_Poors12:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=NewArea][order(NewArea)] +HouseOwn<-HouseOwn[,.(HouseOwn_Poors12,NewArea,Weight)] +HouseOwn12<-HouseOwn[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +HouseOwn1<-merge(HouseOwn1,HouseOwn2,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn3,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn4,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn5,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn6,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn7,by =c("NewArea"),all.x=TRUE) +HouseOwn1<-merge(HouseOwn1,HouseOwn8,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn9,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn10,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn11,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +HouseOwn1<-merge(HouseOwn1,HouseOwn12,by =c("NewArea"),all.x=TRUE) +HouseOwn1[,Weight:=NULL] +write.xlsx(HouseOwn1, "D:/R/Poors_House2_Urban.xlsx",sheetName = "HouseOwn1") + + +HouseOwn13<-CBN_Urban[,HouseOwn1:=weighted.mean(ifelse(HouseOwn==1,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn13<-HouseOwn13[,.(HouseOwn1,FinalPoor,Weight)] +HouseOwn13<-HouseOwn13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn13[,Weight:=NULL] + +HouseOwn14<-CBN_Urban[,HouseOwn2:=weighted.mean(ifelse(HouseOwn==2,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn14<-HouseOwn14[,.(HouseOwn2,FinalPoor,Weight)] +HouseOwn14<-HouseOwn14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn14[,Weight:=NULL] + +HouseOwn15<-CBN_Urban[,HouseOwn3:=weighted.mean(ifelse(HouseOwn==3,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn15<-HouseOwn15[,.(HouseOwn3,FinalPoor,Weight)] +HouseOwn15<-HouseOwn15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn15[,Weight:=NULL] + +HouseOwn16<-CBN_Urban[,HouseOwn4:=weighted.mean(ifelse(HouseOwn==4,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn16<-HouseOwn16[,.(HouseOwn4,FinalPoor,Weight)] +HouseOwn16<-HouseOwn16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn16[,Weight:=NULL] + +HouseOwn17<-CBN_Urban[,HouseOwn5:=weighted.mean(ifelse(HouseOwn==5,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn17<-HouseOwn17[,.(HouseOwn5,FinalPoor,Weight)] +HouseOwn17<-HouseOwn17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn17[,Weight:=NULL] + +HouseOwn18<-CBN_Urban[,HouseOwn6:=weighted.mean(ifelse(HouseOwn==6,1,0),Weight),by=FinalPoor][order(FinalPoor)] +HouseOwn18<-HouseOwn18[,.(HouseOwn6,FinalPoor,Weight)] +HouseOwn18<-HouseOwn18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +HouseOwn18[,Weight:=NULL] + +HouseOwn2<-merge(HouseOwn13,HouseOwn14,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn15,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn16,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn17,by =c("FinalPoor"),all.x=TRUE) +HouseOwn2<-merge(HouseOwn2,HouseOwn18,by =c("FinalPoor"),all.x=TRUE) +write.xlsx(HouseOwn2, "D:/R/Poors_House2_Urban.xlsx",sheetName = "HouseOwn2",append = TRUE) + +##### skeleton ##### + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors1:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors1,NewArea,Weight)] +skeleton1<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +skeleton1[,Weight:=NULL] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors2:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors2,NewArea,Weight)] +skeleton2<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors3:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors3,NewArea,Weight)] +skeleton3<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors4:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors4,NewArea,Weight)] +skeleton4<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors5:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors5,NewArea,Weight)] +skeleton5<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors6:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors6,NewArea,Weight)] +skeleton6<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors13:=weighted.mean(ifelse(skeleton==7,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors13,NewArea,Weight)] +skeleton13<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors14:=weighted.mean(ifelse(skeleton==8,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors14,NewArea,Weight)] +skeleton14<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors15:=weighted.mean(ifelse(skeleton==20,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors15,NewArea,Weight)] +skeleton15<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_NonPoor_Urban[,skeleton_Poors16:=weighted.mean(ifelse(skeleton==10,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors16,NewArea,Weight)] +skeleton16<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + + +skeleton<-CBN_Poor_Urban[,skeleton_Poors7:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors7,NewArea,Weight)] +skeleton7<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] +skeleton7[,Weight:=NULL] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors8:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors8,NewArea,Weight)] +skeleton8<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors9:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors9,NewArea,Weight)] +skeleton9<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors10:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors10,NewArea,Weight)] +skeleton10<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors11:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors11,NewArea,Weight)] +skeleton11<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors12:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors12,NewArea,Weight)] +skeleton12<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors17:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors17,NewArea,Weight)] +skeleton17<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors18:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors18,NewArea,Weight)] +skeleton18<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors19:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors19,NewArea,Weight)] +skeleton19<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton<-CBN_Poor_Urban[,skeleton_Poors20:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=NewArea][order(NewArea)] +skeleton<-skeleton[,.(skeleton_Poors20,NewArea,Weight)] +skeleton20<-skeleton[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(NewArea)] + +skeleton1<-merge(skeleton1,skeleton2,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton3,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton4,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton5,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton6,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton13,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton14,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton15,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton16,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton7,by =c("NewArea"),all.x=TRUE) +skeleton1<-merge(skeleton1,skeleton8,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton9,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton10,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton11,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton12,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton17,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton18,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton19,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +skeleton1<-merge(skeleton1,skeleton20,by =c("NewArea"),all.x=TRUE) +skeleton1[,Weight:=NULL] +write.xlsx(skeleton1, "D:/R/Poors_House2_Urban.xlsx",sheetName = "skeleton1",append = TRUE) + + +skeleton13<-CBN_Urban[,skeleton1:=weighted.mean(ifelse(skeleton==1,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton13<-skeleton13[,.(skeleton1,FinalPoor,Weight)] +skeleton13<-skeleton13[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton13[,Weight:=NULL] + +skeleton14<-CBN_Urban[,skeleton2:=weighted.mean(ifelse(skeleton==2,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton14<-skeleton14[,.(skeleton2,FinalPoor,Weight)] +skeleton14<-skeleton14[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton14[,Weight:=NULL] + +skeleton15<-CBN_Urban[,skeleton3:=weighted.mean(ifelse(skeleton==3,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton15<-skeleton15[,.(skeleton3,FinalPoor,Weight)] +skeleton15<-skeleton15[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton15[,Weight:=NULL] + +skeleton16<-CBN_Urban[,skeleton4:=weighted.mean(ifelse(skeleton==4,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton16<-skeleton16[,.(skeleton4,FinalPoor,Weight)] +skeleton16<-skeleton16[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton16[,Weight:=NULL] + +skeleton17<-CBN_Urban[,skeleton5:=weighted.mean(ifelse(skeleton==5,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton17<-skeleton17[,.(skeleton5,FinalPoor,Weight)] +skeleton17<-skeleton17[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton17[,Weight:=NULL] + +skeleton18<-CBN_Urban[,skeleton6:=weighted.mean(ifelse(skeleton==6,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton18<-skeleton18[,.(skeleton6,FinalPoor,Weight)] +skeleton18<-skeleton18[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton18[,Weight:=NULL] + +skeleton19<-CBN_Urban[,skeleton7:=weighted.mean(ifelse(skeleton==7,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton19<-skeleton19[,.(skeleton7,FinalPoor,Weight)] +skeleton19<-skeleton19[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton19[,Weight:=NULL] + +skeleton20<-CBN_Urban[,skeleton8:=weighted.mean(ifelse(skeleton==8,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton20<-skeleton20[,.(skeleton8,FinalPoor,Weight)] +skeleton20<-skeleton20[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton20[,Weight:=NULL] + +skeleton21<-CBN_Urban[,skeleton10:=weighted.mean(ifelse(skeleton==10,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton21<-skeleton21[,.(skeleton10,FinalPoor,Weight)] +skeleton21<-skeleton21[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton21[,Weight:=NULL] + +skeleton22<-CBN_Urban[,skeleton20:=weighted.mean(ifelse(skeleton==20,1,0),Weight),by=FinalPoor][order(FinalPoor)] +skeleton22<-skeleton22[,.(skeleton20,FinalPoor,Weight)] +skeleton22<-skeleton22[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(FinalPoor)] +skeleton22[,Weight:=NULL] + +skeleton2<-merge(skeleton13,skeleton14,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton15,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton16,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton17,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton18,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton19,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton20,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton21,by =c("FinalPoor"),all.x=TRUE) +skeleton2<-merge(skeleton2,skeleton22,by =c("FinalPoor"),all.x=TRUE) +write.xlsx(skeleton2, "D:/R/Poors_House2_Urban.xlsx",sheetName = "skeleton2",append = TRUE) + +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/90-bundle_share95.R b/R/Archive/November 2019/90-bundle_share95.R new file mode 100644 index 00000000..a69d10ee --- /dev/null +++ b/R/Archive/November 2019/90-bundle_share95.R @@ -0,0 +1,36 @@ +rm(list=ls()) +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +year<-95 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +TD<-MD +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) +TD<-merge(TD,MD[,.(HHID,FinalPoor)]) + + +TD[FinalPoor==1,weighted.mean(FoodExpenditure/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Cigar_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Cloth_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Energy_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(ServiceExp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Behdasht_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Transportation_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Furniture_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Communication_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Amusement_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(EducExpenditure/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Hotel_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Other_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Durable_Exp/Total_Exp_Month,Weight)] +TD[FinalPoor==1,weighted.mean(Medical_Exp/Total_Exp_Month,Weight)] + + + + diff --git a/R/Archive/November 2019/91-Calculation of EV and CV- 2nd edition.R b/R/Archive/November 2019/91-Calculation of EV and CV- 2nd edition.R new file mode 100644 index 00000000..2991e7ce --- /dev/null +++ b/R/Archive/November 2019/91-Calculation of EV and CV- 2nd edition.R @@ -0,0 +1,723 @@ +# 91-Calculation of EV and CV- 2nd edition +# +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +options(warn=-1) + +################################################ +################ Shir ######################## +################################################ +cat("\n\n================ Shir =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Shir)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","ShirPrice","ShirExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,ShirExpenditure:=as.numeric(ShirExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,ShirPrice:=as.numeric(ShirPrice)] + TF[is.na(TF)] <- 0 + TF[,ShirKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + ShirData <- TF[,lapply(.SD,sum),by=HHID] + save(ShirData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Shirs.rda")) +} + +################################################ +################ Mast ######################## +################################################ +cat("\n\n================ Mast =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Mast)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","MastPrice","MastExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,MastExpenditure:=as.numeric(MastExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,MastPrice:=as.numeric(MastPrice)] + TF[is.na(TF)] <- 0 + TF[,MastKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + MastData <- TF[,lapply(.SD,sum),by=HHID] + save(MastData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Masts.rda")) +} + +################################################ +################ Panir ######################## +################################################ +cat("\n\n================ Panir =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Panir)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","PanirPrice","PanirExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,PanirExpenditure:=as.numeric(PanirExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,PanirPrice:=as.numeric(PanirPrice)] + TF[is.na(TF)] <- 0 + TF[,PanirKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + PanirData <- TF[,lapply(.SD,sum),by=HHID] + save(PanirData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Panirs.rda")) +} + +################################################ +################ Cow ######################## +################################################ +cat("\n\n================ Cow =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Cow)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","CowPrice","CowExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,CowExpenditure:=as.numeric(CowExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,CowPrice:=as.numeric(CowPrice)] + TF[is.na(TF)] <- 0 + TF[,CowKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + CowData <- TF[,lapply(.SD,sum),by=HHID] + save(CowData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Cows.rda")) +} + +################################################ +################ Sheep ######################## +################################################ +cat("\n\n================ Sheep =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Sheep)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","SheepPrice","SheepExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,SheepExpenditure:=as.numeric(SheepExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,SheepPrice:=as.numeric(Grams)] + TF[,SheepPrice:=as.numeric(SheepPrice)] + TF[is.na(TF)] <- 0 + TF[,SheepKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + SheepData <- TF[,lapply(.SD,sum),by=HHID] + save(SheepData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Sheeps.rda")) +} + +################################################ +################ Morgh ######################## +################################################ +cat("\n\n================ Morgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Morgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","MorghPrice","MorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:97){ + TF[,MorghExpenditure:=as.numeric(MorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,MorghPrice:=as.numeric(MorghPrice)] + TF[is.na(TF)] <- 0 + TF[,MorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + MorghData <- TF[,lapply(.SD,sum),by=HHID] + save(MorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Morghs.rda")) +} + +################################################ +################ Ghand ######################## +################################################ +cat("\n\n================ Ghand =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Ghand)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","GhandPrice","GhandExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:97){ + TF[,GhandExpenditure:=as.numeric(GhandExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,GhandPrice:=as.numeric(GhandPrice)] + TF[is.na(TF)] <- 0 + TF[,GhandKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + GhandData <- TF[,lapply(.SD,sum),by=HHID] + save(GhandData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Ghands.rda")) +} + +################################################ +################ Shekar ######################## +################################################ +cat("\n\n================ Shekar =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Shekar)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","ShekarPrice","ShekarExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:97){ + TF[,ShekarExpenditure:=as.numeric(ShekarExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,ShekarPrice:=as.numeric(ShekarPrice)] + TF[is.na(TF)] <- 0 + TF[,ShekarKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + ShekarData <- TF[,lapply(.SD,sum),by=HHID] + save(ShekarData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Shekars.rda")) +} +################################################ +################ Berenj ######################## +################################################ +cat("\n\n================ Berenj =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_BerenjF)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","BerenjPrice","BerenjFExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:97){ + TF[,BerenjFExpenditure:=as.numeric(BerenjFExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,BerenjPrice:=as.numeric(BerenjPrice)] + TF[is.na(TF)] <- 0 + TF[,BerenjKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + BerenjData <- TF[,lapply(.SD,sum),by=HHID] + save(BerenjData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Berenjs.rda")) +} +################################################ +################ Roghan ######################## +################################################ +cat("\n\n================ Roghan =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Roghan)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","RoghanPrice","RoghanExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:97){ + TF[,RoghanExpenditure:=as.numeric(RoghanExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,RoghanPrice:=as.numeric(RoghanPrice)] + TF[is.na(TF)] <- 0 + TF[,RoghanKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + RoghanData <- TF[,lapply(.SD,sum),by=HHID] + save(RoghanData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Roghans.rda")) +} +################################################ +################ Tokhmemorgh ######################## +################################################ +cat("\n\n================ Tokhmemorgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Tokhmemorgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","TokhmemorghPrice","TokhmemorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year %in% 84:97){ + TF[,TokhmemorghExpenditure:=as.numeric(TokhmemorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,TokhmemorghPrice:=as.numeric(TokhmemorghPrice)] + TF[is.na(TF)] <- 0 + TF[,TokhmemorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TokhmemorghData <- TF[,lapply(.SD,sum),by=HHID] + save(TokhmemorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Tokhmemorghs.rda")) +} + +cat("\n\n================ Merge =====================================\n") +################################################ +####### Load Additional Information ############# +################################################ +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +HHBase<-HHBase[,.(HHID,Region,ProvinceCode,Month)] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) +SMD<-MD[,.(HHID,Decile,Weight,Size,EqSizeOECD, + Total_Exp_Month,Total_Exp_Month_Per,TOriginalFoodExpenditure)] +#Total_Exp_Month_nondurable,Total_Exp_Month_Per_nondurable)] + +################################################ +####### Merge Information ############# +################################################ + +Total<-merge(HHBase,SMD,all = TRUE) +Total<-merge(Total,MorghData,all = TRUE) +Total<-merge(Total,ShekarData,all = TRUE) +Total<-merge(Total,GhandData,all = TRUE) +Total<-merge(Total,BerenjData,all = TRUE) +Total<-merge(Total,RoghanData,all = TRUE) +Total<-merge(Total,TokhmemorghData,all = TRUE) +Total<-merge(Total,CowData,all = TRUE) +Total<-merge(Total,SheepData,all = TRUE) +Total<-merge(Total,ShirData,all = TRUE) +Total<-merge(Total,MastData,all = TRUE) +Total<-merge(Total,PanirData,all = TRUE) + +for (col in c("MorghExpenditure","MorghKG", + "ShekarExpenditure","ShekarKG", + "GhandExpenditure","GhandKG", + "BerenjFExpenditure","BerenjKG", + "RoghanExpenditure","RoghanKG", + "TokhmemorghExpenditure","TokhmemorghKG", + "CowExpenditure","CowKG", + "ShirExpenditure","ShirKG", + "MastExpenditure","MastKG", + "PanirExpenditure","PanirKG", + "SheepExpenditure","SheepKG")) Total[is.na(get(col)), (col) := 0] + + +Total<-Total[Decile %in% 1:10] + +#Price Indexes +load(file="Index_Dataset97.rda") +Total<-merge(Total,Index_Dataset97,by=c("Region","Month"),all.x=TRUE) + +Berenj_Esfand96<-114.4 +Morgh_Esfand96<-122.1 +Ghand_Esfand96<-108.4 +Shekar_Esfand96<-108.4 +Roghan_Esfand96<-113.7 +Tokhmemorgh_Esfand96<-120.9 +Panir_Esfand96<-120.9 +Shir_Esfand96<-120.9 +Mast_Esfand96<-120.9 +Cow_Esfand96<-122.1 +Sheep_Esfand96<-122.1 + +Berenj_Esfand97<-145.6 +Morgh_Esfand97<-265.6 +Ghand_Esfand97<-170.3 +Shekar_Esfand97<-170.3 +Roghan_Esfand97<-168 +Tokhmemorgh_Esfand97<-175.3 +Panir_Esfand97<-175.3 +Shir_Esfand97<-175.3 +Mast_Esfand97<-175.3 +Cow_Esfand97<-265.6 +Sheep_Esfand97<-265.6 + + + +############New Prices########### +Total[,BerenjP0:=BerenjPrice*Berenj_Esfand96/BerenjIndex] +Total[,MorghP0:=MorghPrice*Morgh_Esfand96/MorghIndex] +Total[,GhandP0:=GhandPrice*Ghand_Esfand96/GhandIndex] +Total[,ShekarP0:=ShekarPrice*Ghand_Esfand96/GhandIndex] +Total[,RoghanP0:=RoghanPrice*Roghan_Esfand96/RoghanIndex] +Total[,TokhmemorghP0:=TokhmemorghPrice*Tokhmemorgh_Esfand96/EggIndex] +Total[,SheepP0:=SheepPrice*Sheep_Esfand96/SheepIndex] +Total[,CowP0:=CowPrice*Cow_Esfand96/CowIndex] +Total[,ShirP0:=ShirPrice*Shir_Esfand96/ShirIndex] +Total[,MastP0:=MastPrice*Mast_Esfand96/MastIndex] +Total[,PanirP0:=PanirPrice*Panir_Esfand96/PanirIndex] + +Total[,BerenjP1:=BerenjPrice*Berenj_Esfand97/BerenjIndex] +Total[,MorghP1:=MorghPrice*Morgh_Esfand97/MorghIndex] +Total[,GhandP1:=GhandPrice*Ghand_Esfand97/GhandIndex] +Total[,ShekarP1:=ShekarPrice*Ghand_Esfand97/GhandIndex] +Total[,RoghanP1:=RoghanPrice*Roghan_Esfand97/RoghanIndex] +Total[,TokhmemorghP1:=TokhmemorghPrice*Tokhmemorgh_Esfand97/EggIndex] +Total[,PanirP1:=PanirPrice*Panir_Esfand97/PanirIndex] +Total[,MastP1:=MastPrice*Mast_Esfand97/MastIndex] +Total[,ShirP1:=ShirPrice*Shir_Esfand97/ShirIndex] +Total[,CowP1:=CowPrice*Cow_Esfand97/CowIndex] +Total[,SheepP1:=SheepPrice*Sheep_Esfand97/SheepIndex] + +Total[,BerenjP2:=BerenjP0*2.57] +Total[,MorghP2:=MorghP0*2.57] +Total[,GhandP2:=GhandP0*2.57] +Total[,ShekarP2:=ShekarP0*2.57] +Total[,RoghanP2:=RoghanP0*2.57] +Total[,TokhmemorghP2:=TokhmemorghP0*2.57] +Total[,SheepP2:=SheepP0*2.57] +Total[,CowP2:=CowP0*2.57] +Total[,ShirP2:=ShirP0*2.57] +Total[,MastP2:=MastP0*2.57] +Total[,PanirP2:=PanirP0*2.57] + +################################################ +################ CV and EV ################# +################################################ + +Total<-Total[,GExpenditures:=BerenjFExpenditure+GhandExpenditure+ + ShekarExpenditure+MorghExpenditure+ + RoghanExpenditure+TokhmemorghExpenditure+ + ShirExpenditure+MastExpenditure+ + CowExpenditure+PanirExpenditure+ + SheepExpenditure] +GExpenditures<-Total[,weighted.mean(GExpenditures,Weight)] + + +Total<-Total[,BerenjShare:=BerenjFExpenditure/GExpenditures] +Total<-Total[,GhandShare:=GhandExpenditure/GExpenditures] +Total<-Total[,ShekarShare:=ShekarExpenditure/GExpenditures] +Total<-Total[,MorghShare:=MorghExpenditure/GExpenditures] +Total<-Total[,RoghanShare:=RoghanExpenditure/GExpenditures] +Total<-Total[,TokhmemorghShare:=TokhmemorghExpenditure/GExpenditures] +Total<-Total[,PanirShare:=PanirExpenditure/GExpenditures] +Total<-Total[,ShirShare:=ShirExpenditure/GExpenditures] +Total<-Total[,MastShare:=MastExpenditure/GExpenditures] +Total<-Total[,CowShare:=CowExpenditure/GExpenditures] +Total<-Total[,SheepShare:=SheepExpenditure/GExpenditures] + + +Total<-Total[,CV2:=GExpenditures*(1-((GhandP2/GhandP1)^GhandShare)*((ShekarP2/ShekarP1)^ShekarShare)* + ((BerenjP2/BerenjP1)^BerenjShare)*((RoghanP2/RoghanP1)^RoghanShare)* + ((MorghP2/MorghP1)^MorghShare)*((TokhmemorghP2/TokhmemorghP1)^TokhmemorghShare)* + ((SheepP2/SheepP1)^SheepShare)*((CowP2/CowP1)^CowShare)* + ((ShirP2/ShirP1)^ShirShare)*((MastP2/MastP1)^MastShare)* + ((PanirP2/PanirP1)^PanirShare))] + +Total[,weighted.mean(CV2,Weight,na.rm = TRUE)] +Total[,weighted.mean(CV2,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(CV2,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] +Total[,weighted.mean(CV2,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Total[,weighted.mean(CV2/GExpenditures,Weight,na.rm = TRUE)] +Total[,weighted.mean(CV2/GExpenditures,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(CV2/GExpenditures,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + + +Total<-Total[,CV3:=GExpenditures*(1-((GhandP2/GhandP0)^GhandShare)*((ShekarP2/ShekarP0)^ShekarShare)* + ((BerenjP2/BerenjP0)^BerenjShare)*((RoghanP2/RoghanP0)^RoghanShare)* + ((MorghP2/MorghP0)^MorghShare)*((TokhmemorghP2/TokhmemorghP0)^TokhmemorghShare)* + ((SheepP2/SheepP0)^SheepShare)*((CowP2/CowP0)^CowShare)* + ((ShirP2/ShirP0)^ShirShare)*((MastP2/MastP0)^MastShare)* + ((PanirP2/PanirP0)^PanirShare))] + +Total[,weighted.mean(CV3,Weight,na.rm = TRUE)] +Total[,weighted.mean(CV3,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(CV3,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] +Total[,weighted.mean(CV3,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Total[,weighted.mean(CV3/GExpenditures,Weight,na.rm = TRUE)] +Total[,weighted.mean(CV3/GExpenditures,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(CV3/GExpenditures,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + + +################################################ +############ Other ############# +################################################ +BerenjShare<-Total[,weighted.mean(BerenjFExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +GhandShare<-Total[,weighted.mean(GhandExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +ShekarShare<-Total[,weighted.mean(ShekarExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +MorghShare<-Total[,weighted.mean(MorghExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +RoghanShare<-Total[,weighted.mean(RoghanExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +TokhmemorghShare<-Total[,weighted.mean(TokhmemorghExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + + +Total[,weighted.mean(Size,Weight)] +Total[,weighted.mean(Size,Weight),by=.(Decile)][order(Decile)] +Total[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + +Total[,weighted.mean(BerenjKG,Weight)] +Total[,weighted.mean(BerenjKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(BerenjKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(RoghanKG,Weight)] +Total[,weighted.mean(RoghanKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(RoghanKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(MorghKG,Weight)] +Total[,weighted.mean(MorghKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(MorghKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(GhandKG,Weight)] +Total[,weighted.mean(GhandKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(GhandKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(ShekarKG,Weight)] +Total[,weighted.mean(ShekarKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(ShekarKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(CowKG,Weight)] +Total[,weighted.mean(CowKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(CowKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(SheepKG,Weight)] +Total[,weighted.mean(SheepKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(SheepKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(TokhmemorghKG,Weight)] +Total[,weighted.mean(TokhmemorghKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(TokhmemorghKG,Weight),by=.(Decile)][order(Decile)] + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/91-Calculation of EV and CV.R b/R/Archive/November 2019/91-Calculation of EV and CV.R new file mode 100644 index 00000000..f148d534 --- /dev/null +++ b/R/Archive/November 2019/91-Calculation of EV and CV.R @@ -0,0 +1,516 @@ +# Calculation of EV and CV +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) +options(warn=-1) +################################################ +################ Morgh ######################## +################################################ +cat("\n\n================ Morgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Morgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","MorghPrice","MorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,MorghExpenditure:=as.numeric(MorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,MorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + MorghData <- TF[,lapply(.SD,sum),by=HHID] + save(MorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Morghs.rda")) +} + +################################################ +################ Cow ######################## +################################################ +cat("\n\n================ Cow =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Cow)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","CowPrice","CowExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,CowExpenditure:=as.numeric(CowExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,CowKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + CowData <- TF[,lapply(.SD,sum),by=HHID] + save(CowData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Cows.rda")) +} + +################################################ +################ Sheep ######################## +################################################ +cat("\n\n================ Sheep =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Sheep)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","SheepPrice","SheepExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,SheepExpenditure:=as.numeric(SheepExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,SheepKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + SheepData <- TF[,lapply(.SD,sum),by=HHID] + save(SheepData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Sheeps.rda")) +} +################################################ +################ Berenj ######################## +################################################ +cat("\n\n================ Berenj =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_BerenjF)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","BerenjPrice","BerenjFExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,BerenjFExpenditure:=as.numeric(BerenjFExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,BerenjKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + BerenjData <- TF[,lapply(.SD,sum),by=HHID] + save(BerenjData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Berenjs.rda")) +} +################################################ +################ Roghan ######################## +################################################ +cat("\n\n================ Roghan =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Roghan)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","RoghanPrice","RoghanExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year %in% 84:96){ + TF[,RoghanExpenditure:=as.numeric(RoghanExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,RoghanKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + RoghanData <- TF[,lapply(.SD,sum),by=HHID] + save(RoghanData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Roghans.rda")) +} +################################################ +################ Tokhmemorgh ######################## +################################################ +cat("\n\n================ Tokhmemorgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Tokhmemorgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","TokhmemorghPrice","TokhmemorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year %in% 84:96){ + TF[,TokhmemorghExpenditure:=as.numeric(TokhmemorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,TokhmemorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TokhmemorghData <- TF[,lapply(.SD,sum),by=HHID] + save(TokhmemorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Tokhmemorghs.rda")) +} + +################################################ +####### Load Additional Information ############# +################################################ +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +HHBase<-HHBase[,.(HHID,Region,ProvinceCode,Month)] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) +SMD<-MD[,.(HHID,Decile,Weight,Size,EqSizeOECD, + Total_Exp_Month,Total_Exp_Month_Per,TOriginalFoodExpenditure)] + #Total_Exp_Month_nondurable,Total_Exp_Month_Per_nondurable)] + +################################################ +####### Merge Information ############# +################################################ + +Total<-merge(HHBase,SMD,all = TRUE) +Total<-merge(Total,MorghData,all = TRUE) +Total<-merge(Total,SheepData,all = TRUE) +Total<-merge(Total,CowData,all = TRUE) +Total<-merge(Total,BerenjData,all = TRUE) +Total<-merge(Total,RoghanData,all = TRUE) +Total<-merge(Total,TokhmemorghData,all = TRUE) + +for (col in c("MorghExpenditure","MorghKG", + "SheepExpenditure","SheepKG", + "CowExpenditure","CowKG", + "BerenjFExpenditure","BerenjKG", + "RoghanExpenditure","RoghanKG", + "TokhmemorghExpenditure","TokhmemorghKG")) Total[is.na(get(col)), (col) := 0] +#"MorghPrice","SheepPrice","CowPrice", +#"BerenjPrice","RoghanPrice","TokhmemorghPrice" + +Total<-Total[Decile %in% 1:10] + +#Price Indexes +load(file="Index_Dataset.rda") +Total<-merge(Total,Index_Dataset,by=c("Month"),all.x=TRUE) + +Berenj_Azar97<-185.5 +Morgh_Azar97<-151.3 +Cow_Azar97<-188.5 +Sheep_Azar97<-182.1 +Roghan_Azar97<-159.9 +Tokhmemorgh_Azar97<-218.5 + +Berenj_Elastisity<- -0.77 +Morgh_Elastisity<- -0.89 +Cow_Elastisity<- -0.89 +Sheep_Elastisity<- -0.89 +Roghan_Elastisity<- -0.81 +Tokhmemorgh_Elastisity<- -0.81 + +############New Prices########### +#Initial Prices +#Total[,BerenjP1:=BerenjPrice*Berenj_Azar97/Bt] +#Total[,MorghP1:=MorghPrice*Morgh_Azar97/Mt] +#Total[,CowP1:=CowPrice*Cow_Azar97/Ct] +#Total[,SheepP1:=SheepPrice*Sheep_Azar97/St] +#Total[,RoghanP1:=RoghanPrice*Roghan_Azar97/Rt] +#Total[,TokhmemorghP1:=TokhmemorghPrice*Tokhmemorgh_Azar97/Tt] + +Total[,BerenjP1:=BerenjPrice] +Total[,MorghP1:=MorghPrice] +Total[,CowP1:=CowPrice] +Total[,SheepP1:=SheepPrice] +Total[,RoghanP1:=RoghanPrice] +Total[,TokhmemorghP1:=TokhmemorghPrice] + +#Second Prices +Total[,BerenjP2:=BerenjPrice*2] +Total[,MorghP2:=MorghPrice*2] +Total[,CowP2:=CowPrice*2] +Total[,SheepP2:=SheepPrice*2] +Total[,RoghanP2:=RoghanPrice*2] +Total[,TokhmemorghP2:=TokhmemorghPrice*2] + +Total[,BerenjP3:=BerenjPrice*3] +Total[,MorghP3:=MorghPrice*3] +Total[,CowP3:=CowPrice*3] +Total[,SheepP3:=SheepPrice*3] +Total[,RoghanP3:=RoghanPrice*3] +Total[,TokhmemorghP3:=TokhmemorghPrice*3] + +################################################ +############ CV and EV ############# +################################################ + +Total<-Total[,GExpenditures:=BerenjFExpenditure+CowExpenditure+ + SheepExpenditure+MorghExpenditure+ + RoghanExpenditure+TokhmemorghExpenditure] +GExpenditures<-Total[,weighted.mean(GExpenditures,Weight)] + + +Total<-Total[,BerenjShare:=BerenjFExpenditure/GExpenditures] +Total<-Total[,CowShare:=CowExpenditure/GExpenditures] +Total<-Total[,SheepShare:=SheepExpenditure/GExpenditures] +Total<-Total[,MorghShare:=MorghExpenditure/GExpenditures] +Total<-Total[,RoghanShare:=RoghanExpenditure/GExpenditures] +Total<-Total[,TokhmemorghShare:=TokhmemorghExpenditure/GExpenditures] + +Total<-Total[,EV2:=GExpenditures*(((CowP1/CowP2)^CowShare)*((SheepP1/SheepP2)^SheepShare)* + ((BerenjP1/BerenjP2)^BerenjShare)*((RoghanP1/RoghanP2)^RoghanShare)* + ((MorghP1/MorghP2)^MorghShare)*((TokhmemorghP1/TokhmemorghP2)^TokhmemorghShare)-1)] +Total[,weighted.mean(EV2,Weight,na.rm = TRUE)] +Total[,weighted.mean(EV2,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(EV2,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] +Total[,weighted.mean(EV2,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Total[,weighted.mean(EV2/TOriginalFoodExpenditure,Weight,na.rm = TRUE)] +Total[,weighted.mean(EV2/TOriginalFoodExpenditure,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(EV2/TOriginalFoodExpenditure,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + +Total<-Total[,CV2:=GExpenditures*(1-((CowP2/CowP1)^CowShare)*((SheepP2/SheepP1)^SheepShare)* + ((BerenjP2/BerenjP1)^BerenjShare)*((RoghanP2/RoghanP1)^RoghanShare)* + ((MorghP2/MorghP1)^MorghShare)*((TokhmemorghP2/TokhmemorghP1)^TokhmemorghShare))] +Total[,weighted.mean(CV2,Weight,na.rm = TRUE)] +Total[,weighted.mean(CV2,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(CV2,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] +Total[,weighted.mean(CV2,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Total[,weighted.mean(CV2/GExpenditures,Weight,na.rm = TRUE)] +Total[,weighted.mean(CV2/GExpenditures,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(CV2/GExpenditures,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + +Total<-Total[,EV3:=GExpenditures*(((CowP1/CowP3)^CowShare)*((SheepP1/SheepP3)^SheepShare)* + ((BerenjP1/BerenjP3)^BerenjShare)*((RoghanP1/RoghanP3)^RoghanShare)* + ((MorghP1/MorghP3)^MorghShare)*((TokhmemorghP1/TokhmemorghP3)^TokhmemorghShare)-1)] +Total[,weighted.mean(EV3,Weight,na.rm = TRUE)] +Total[,weighted.mean(EV3,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(EV3,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] +Total[,weighted.mean(EV3,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Total[,weighted.mean(EV3/GExpenditures,Weight,na.rm = TRUE)] +Total[,weighted.mean(EV3/GExpenditures,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(EV3/GExpenditures,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + +Total<-Total[,CV3:=GExpenditures*(1-((CowP3/CowP1)^CowShare)*((SheepP3/SheepP1)^SheepShare)* + ((BerenjP3/BerenjP1)^BerenjShare)*((RoghanP3/RoghanP1)^RoghanShare)* + ((MorghP3/MorghP1)^MorghShare)*((TokhmemorghP3/TokhmemorghP1)^TokhmemorghShare))] +Total[,weighted.mean(CV3,Weight,na.rm = TRUE)] +Total[,weighted.mean(CV3,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(CV3,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] +Total[,weighted.mean(CV3,Weight,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +Total[,weighted.mean(CV3/GExpenditures,Weight,na.rm = TRUE)] +Total[,weighted.mean(CV3/GExpenditures,Weight,na.rm = TRUE),by=.(Region)][order(Region)] +Total[,weighted.mean(CV3/GExpenditures,Weight,na.rm = TRUE),by=.(Decile)][order(Decile)] + + +################################################ +############ Other ############# +################################################ +BerenjShare<-Total[,weighted.mean(BerenjFExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +CowShare<-Total[,weighted.mean(CowExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +SheepShare<-Total[,weighted.mean(SheepExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +MorghShare<-Total[,weighted.mean(MorghExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +RoghanShare<-Total[,weighted.mean(RoghanExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + +TokhmemorghShare<-Total[,weighted.mean(TokhmemorghExpenditure, + Weight)/weighted.mean(GExpenditures,Weight)] + + +BerenjAP1<-Total[,weighted.mean(BerenjP1,Weight,na.rm = TRUE)] +BerenjAP2<-Total[,weighted.mean(BerenjP2,Weight,na.rm = TRUE)] +BerenjAP3<-Total[,weighted.mean(BerenjP3,Weight,na.rm = TRUE)] +BerenjAQ<-Total[,weighted.mean(BerenjKG,Weight)] + +CowAP1<-Total[,weighted.mean(CowP1,Weight,na.rm = TRUE)] +CowAP2<-Total[,weighted.mean(CowP2,Weight,na.rm = TRUE)] +CowAP3<-Total[,weighted.mean(CowP3,Weight,na.rm = TRUE)] +CowAQ<-Total[,weighted.mean(CowKG,Weight)] + + +SheepAP1<-Total[,weighted.mean(SheepP1,Weight,na.rm = TRUE)] +SheepAP2<-Total[,weighted.mean(SheepP2,Weight,na.rm = TRUE)] +SheepAP3<-Total[,weighted.mean(SheepP3,Weight,na.rm = TRUE)] +SheepAQ<-Total[,weighted.mean(SheepKG,Weight)] + +MorghAP1<-Total[,weighted.mean(MorghP1,Weight,na.rm = TRUE)] +MorghAP2<-Total[,weighted.mean(MorghP2,Weight,na.rm = TRUE)] +MorghAP3<-Total[,weighted.mean(MorghP3,Weight,na.rm = TRUE)] +MorghAQ<-Total[,weighted.mean(MorghKG,Weight)] + +RoghanAP1<-Total[,weighted.mean(RoghanP1,Weight,na.rm = TRUE)] +RoghanAP2<-Total[,weighted.mean(RoghanP2,Weight,na.rm = TRUE)] +RoghanAP3<-Total[,weighted.mean(RoghanP3,Weight,na.rm = TRUE)] +RoghanAQ<-Total[,weighted.mean(RoghanKG,Weight)] + +TokhmemorghAP1<-Total[,weighted.mean(TokhmemorghP1,Weight,na.rm = TRUE)] +TokhmemorghAP2<-Total[,weighted.mean(TokhmemorghP2,Weight,na.rm = TRUE)] +TokhmemorghAP3<-Total[,weighted.mean(TokhmemorghP3,Weight,na.rm = TRUE)] +TokhmemorghAQ<-Total[,weighted.mean(TokhmemorghKG,Weight)] + + + +EV2<-GExpenditures*(((CowAP1/CowAP2)^CowShare)*((SheepAP1/SheepAP2)^SheepShare)* + ((BerenjAP1/BerenjAP2)^BerenjShare)*((RoghanAP1/RoghanAP2)^RoghanShare)* + ((MorghAP1/MorghAP2)^MorghShare)*((TokhmemorghAP1/TokhmemorghAP2)^TokhmemorghShare)-1) + +CV2<-GExpenditures*(1-((CowAP2/CowAP1)^CowShare)*((SheepAP2/SheepAP1)^SheepShare)* + ((BerenjAP2/BerenjAP1)^BerenjShare)*((RoghanAP2/RoghanAP1)^RoghanShare)* + ((MorghAP2/MorghAP1)^MorghShare)*((TokhmemorghAP2/TokhmemorghAP1)^TokhmemorghShare)-1) + +EV3<-GExpenditures*(((CowAP1/CowAP3)^CowShare)*((SheepAP1/SheepAP3)^SheepShare)* + ((BerenjAP1/BerenjAP3)^BerenjShare)*((RoghanAP1/RoghanAP3)^RoghanShare)* + ((MorghAP1/MorghAP3)^MorghShare)*((TokhmemorghAP1/TokhmemorghAP3)^TokhmemorghShare)-1) + +CV3<-GExpenditures*(1-((CowAP3/CowAP1)^CowShare)*((SheepAP3/SheepAP1)^SheepShare)* + ((BerenjAP3/BerenjAP1)^BerenjShare)*((RoghanAP3/RoghanAP1)^RoghanShare)* + ((MorghAP3/MorghAP1)^MorghShare)*((TokhmemorghAP3/TokhmemorghAP1)^TokhmemorghShare)-1) + + +Total[,weighted.mean(Size,Weight)] +Total[,weighted.mean(Size,Weight),by=.(Decile)][order(Decile)] +Total[,weighted.mean(Size,Weight),by=.(Region)][order(Region)] + +Total[,weighted.mean(BerenjKG,Weight)] +Total[,weighted.mean(BerenjKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(BerenjKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(RoghanKG,Weight)] +Total[,weighted.mean(RoghanKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(RoghanKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(MorghKG,Weight)] +Total[,weighted.mean(MorghKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(MorghKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(CowKG,Weight)] +Total[,weighted.mean(CowKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(CowKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(SheepKG,Weight)] +Total[,weighted.mean(SheepKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(SheepKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(TokhmemorghKG,Weight)] +Total[,weighted.mean(TokhmemorghKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(TokhmemorghKG,Weight),by=.(Decile)][order(Decile)] + +#x<-Total[,.(Total_Exp_Month_Per_nondurable,Decile)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/92-Engle Calculations for Provinces.R b/R/Archive/November 2019/92-Engle Calculations for Provinces.R new file mode 100644 index 00000000..25892e57 --- /dev/null +++ b/R/Archive/November 2019/92-Engle Calculations for Provinces.R @@ -0,0 +1,89 @@ +# Engle Calculations for Provinces.R +# +# Copyright B) 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(sm) +library(readxl) +library(data.table) +library(ggplot2) + +#par(mar=c(5,4,4,3)) +year<-95 +#for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + MD<-MD[,Engel:=TFoodExpenditure/Total_Exp_Month] + + #MDUrban<-MD[Region=="Urban" & cluster==3] +#MDUrban<-MD[Region=="Urban" & cluster==2 & (NewArea==1 | NewArea==2 | NewArea==303 | NewArea==502 )] +#MDUrban<-MD[Region=="Urban" & cluster==2 & (NewArea==3001 | NewArea==23 | NewArea==30 | NewArea==25 | NewArea==26)] +#MDUrban<-MD[Region=="Urban" & cluster==2 & (NewArea==603 | NewArea==707 | NewArea==916 | NewArea==1002 | NewArea==2202)] + +#MDUrban<-MD[Region=="Urban" & cluster==3 & (NewArea==603 | NewArea==707 | NewArea==916 | NewArea==1002 | NewArea==2202)] + #MDUrban[,weighted.mean(Engel,Weight),by=NewArea][order(V1)] + + MDRural<-MD[Region=="Rural" & cluster==3] + #MDRural<-MD[Region=="Rural" & cluster==2 & (NewArea==1 | NewArea==2 | NewArea==303 | NewArea==502 )] + #MDRural<-MD[Region=="Rural" & cluster==1 & (NewArea==11 | NewArea==9 | NewArea==17 | NewArea==12 | NewArea==24 | NewArea==16)] + #MDRural<-MD[Region=="Rural" & cluster==1 & (NewArea==3 | NewArea==20 | NewArea==19 | NewArea==7 | NewArea==0)] + + #MDRural<-MD[Region=="Rural" & cluster==3 & (NewArea==10 | NewArea==2 | NewArea==27 | NewArea==21 | NewArea==1)] + MDRural<-MD[Region=="Rural" & cluster==3 & (NewArea==5 | NewArea==26 | NewArea==18 | NewArea==25)] + + + #MDRural<-MD[Region=="Rural" & cluster==3 & (NewArea==603 | NewArea==707 | NewArea==916 | NewArea==1002 | NewArea==2202)] + MDRural[,weighted.mean(Engel,Weight),by=NewArea][order(V1)] + + + #8th and 9th Deciles + # EnglePR <- MDRural[Decile %in% 8:9, + # .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + # FPLine=mean(FPLine),cluster),by=.(Region,NewArea)] + + # EnglePU <- MDUrban[Decile %in% 8:9, + # .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + # FPLine=mean(FPLine),cluster),by=.(Region,NewArea)] + + #First and Second Deciles + #EnglePR <- MDRural[Decile %in% 1:2, + # .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + # FPLine=mean(FPLine),cluster)] + + # EnglePU <- MDUrban[Decile %in% 1:2, + # .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + # FPLine=mean(FPLine),cluster)] + + + #people's who are near FPLine + # EnglePR <- MDRural[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine, + # .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + # FPLine=mean(FPLine),cluster),by=.(Region,NewArea)] + + # EnglePU <- MDUrban[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine, + # .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + # FPLine=mean(FPLine),cluster),by=.(Region,NewArea)] +#} +#geom_density(data = MD$Engel,show.legend = TRUE, +#inherit.aes = TRUE,inherit.aes = TRUE) + +#sm.density.compare(MDUrban$Engel,group = MDUrban$NewArea) +#sm.density.compare(MDUrban$Engel,group = MDUrban$NewArea==9) +#sm.density.compare(MDRural$Engel,group = MDRural$NewArea) +#legend("topleft",legend = c("aaa","ss","dd","ff","gg")) + + + + + endtime <- proc.time() + cat("\n\n============================\nIt took ") + cat((endtime-starttime)["elapsed"]) + cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/93-T-Test in Clusters.R b/R/Archive/November 2019/93-T-Test in Clusters.R new file mode 100644 index 00000000..0efe8dee --- /dev/null +++ b/R/Archive/November 2019/93-T-Test in Clusters.R @@ -0,0 +1,76 @@ +# T-Test in Clusters.R +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ T-Tests =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +year<-95 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) +MD<-MD[,Engel:=TFoodExpenditure/Total_Exp_Month] + +MDH <- MD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine] + +###############Rural############### +#####Cluster 1 +a<-MDH[Region=="Rural" & NewArea==30,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=30 & cluster2==1,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Cluster 2 +a<-MDH[Region=="Rural" & NewArea==2,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=2 & cluster2==2,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Cluster 3 +a<-MDH[Region=="Rural" & NewArea==18,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=18 & cluster2==3,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Cluster 4 +a<-MDH[Region=="Rural" & NewArea==12,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=12 & cluster2==4,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Cluster 5 +a<-MDH[Region=="Rural" & NewArea==8,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Rural" & NewArea!=8 & cluster2==5,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + + +###############Urban############### +#####Cluster 2 +a<-MDH[Region=="Urban" & NewArea==3001,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=3001 & cluster2==2,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Cluster 3 +a<-MDH[Region=="Urban" & NewArea==3,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=3 & cluster2==3,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + + + +#####Cluster 5 +a<-MDH[Region=="Urban" & NewArea==9,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=9 & cluster2==5,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Cluster 4 +a<-MDH[Region=="Urban" & NewArea==4,.(Engel,cluster2,NewArea_Name)] +b<-MDH[Region=="Urban" & NewArea!=4 & cluster2==4,.(Engel,cluster2,NewArea_Name)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/94-T-Tests.R b/R/Archive/November 2019/94-T-Tests.R new file mode 100644 index 00000000..e56d4e66 --- /dev/null +++ b/R/Archive/November 2019/94-T-Tests.R @@ -0,0 +1,220 @@ +# T-Tests.R +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ T-Tests =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +year<-95 +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) +MD<-MD[,Engel:=TFoodExpenditure/Total_Exp_Month] + + +##########Total Households########## +#####Tehran +a<-MD[Region=="Urban" & NewArea==23,.(Engel)] +b<-MD[Region=="Urban" & NewArea==2301,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Mashhad +a<-MD[Region=="Urban" & NewArea==9,.(Engel)] +b<-MD[Region=="Urban" & NewArea==916,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Esfahan +a<-MD[Region=="Urban" & NewArea==10,.(Engel)] +b<-MD[Region=="Urban" & NewArea==1002,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Karaj +a<-MD[Region=="Urban" & NewArea==30,.(Engel)] +b<-MD[Region=="Urban" & NewArea==3001,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Shiraz +a<-MD[Region=="Urban" & NewArea==7,.(Engel)] +b<-MD[Region=="Urban" & NewArea==707,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Tabriz +a<-MD[Region=="Urban" & NewArea==3,.(Engel)] +b<-MD[Region=="Urban" & NewArea==303,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Ahvaz +a<-MD[Region=="Urban" & NewArea==6,.(Engel)] +b<-MD[Region=="Urban" & NewArea==603,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Kermanshah +a<-MD[Region=="Urban" & NewArea==5,.(Engel)] +b<-MD[Region=="Urban" & NewArea==502,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Urmia +a<-MD[Region=="Urban" & NewArea==4,.(Engel)] +b<-MD[Region=="Urban" & NewArea==2301,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=401, paired=FALSE) + +#####Rasht +#a<-MD[Region=="Urban" & NewArea==1,.(Engel)] +#b<-MD[Region=="Urban" & NewArea==105,.(Engel)] +#t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Zahedan +#a<-MD[Region=="Urban" & NewArea==11,.(Engel)] +#b<-MD[Region=="Urban" & NewArea==1105,.(Engel)] +#t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Kerman +a<-MD[Region=="Urban" & NewArea==8,.(Engel)] +b<-MD[Region=="Urban" & NewArea==808,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Bandarabas +a<-MD[Region=="Urban" & NewArea==22,.(Engel)] +b<-MD[Region=="Urban" & NewArea==2202,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Hamedan +#a<-MD[Region=="Urban" & NewArea==13,.(Engel)] +#b<-MD[Region=="Urban" & NewArea==1304,.(Engel)] +#t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Yazd +#a<-MD[Region=="Urban" & NewArea==21,.(Engel)] +#b<-MD[Region=="Urban" & NewArea==2105,.(Engel)] +#t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Arak +a<-MD[Region=="Urban" & NewArea==0,.(Engel)] +b<-MD[Region=="Urban" & NewArea==1,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +####Engle +EngleP <- MD[ ,.(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,NewArea_Name)] + + +y<-EngleP[Region=="Urban",.(Engel,NewArea_Name)] +y$NewArea <- factor(y$NewArea, levels = y$NewArea[order(y$Engel)]) +ggplot(y, aes(x = y$NewArea, y = y$Engel)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +x<-EngleP[Region=="Rural",.(Engel,NewArea_Name)] +x$NewArea <- factor(x$NewArea, levels = x$NewArea[order(x$Engel)]) +ggplot(x, aes(x = x$NewArea, y = x$Engel)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +##########Near FoodPLine Households########## +MDH <- MD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine] + +#####Tehran +a<-MDH[Region=="Urban" & NewArea==23,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==2301,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Mashhad +a<-MDH[Region=="Urban" & NewArea==9,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==916,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Esfahan +a<-MDH[Region=="Urban" & NewArea==10,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==1002,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Karaj +a<-MDH[Region=="Urban" & NewArea==30,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==3001,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Shiraz +a<-MDH[Region=="Urban" & NewArea==7,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==707,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Tabriz +a<-MDH[Region=="Urban" & NewArea==3,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==303,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Ahvaz +a<-MDH[Region=="Urban" & NewArea==6,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==603,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Kermanshah +a<-MDH[Region=="Urban" & NewArea==5,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==502,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Urmia +a<-MDH[Region=="Urban" & NewArea==4,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==2301,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=401, paired=FALSE) + +#####Rasht +#a<-MDH[Region=="Urban" & NewArea==1,.(Engel)] +#b<-MDH[Region=="Urban" & NewArea==105,.(Engel)] +#t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Zahedan +#a<-MDH[Region=="Urban" & NewArea==11,.(Engel)] +#b<-MDH[Region=="Urban" & NewArea==1105,.(Engel)] +#t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Kerman +a<-MDH[Region=="Urban" & NewArea==8,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==808,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Bandarabas +a<-MDH[Region=="Urban" & NewArea==22,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==2202,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Hamedan +#a<-MDH[Region=="Urban" & NewArea==13,.(Engel)] +#b<-MDH[Region=="Urban" & NewArea==1304,.(Engel)] +#t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Yazd +#a<-MDH[Region=="Urban" & NewArea==21,.(Engel)] +#b<-MDH[Region=="Urban" & NewArea==2105,.(Engel)] +#t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +#####Arak +a<-MDH[Region=="Urban" & NewArea==0,.(Engel)] +b<-MDH[Region=="Urban" & NewArea==1,.(Engel)] +t.test(a$Engel,b$Engel, var.equal=TRUE, paired=FALSE) + +####Engle +EngleH <- MDH[ ,.(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,NewArea_Name)] + + +x2<-EngleH[Region=="Rural",.(Engel,NewArea_Name)] +x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$Engel)]) +ggplot(x2, aes(x = x2$NewArea, y = x2$Engel)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +y2<-EngleH[Region=="Urban",.(Engel,NewArea_Name)] +y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$Engel)]) +ggplot(y2, aes(x = y2$NewArea, y = y2$Engel)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/November 2019/95-for MRS. Azizkhani.R b/R/Archive/November 2019/95-for MRS. Azizkhani.R new file mode 100644 index 00000000..5a52ab3b --- /dev/null +++ b/R/Archive/November 2019/95-for MRS. Azizkhani.R @@ -0,0 +1,187 @@ +#60-Poors properties.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(haven) + +#for(year in (Settings$startyear:Settings$endyear)){ +year<-96 + cat(paste0("\nYear:",year,"\t")) + + #Load Data + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"PoorsforMerge.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + + Total<-merge(MD2,HHHouseProperties,by =c("HHID"),all.x=TRUE) + Total<-merge(Total,HHBase,by =c("HHID"),all.x=TRUE) + + ##### Activity #####Region########## + Activity<-Total[FinalPoor==1,Activity_Poors1:=weighted.mean(ifelse(ActivityState %in% "Employed",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors1,Region,Weight)] + Activity1<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity1[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors2:=weighted.mean(ifelse(ActivityState %in% "Unemployed",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors2,Region,Weight)] + Activity2<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity2[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors3:=weighted.mean(ifelse(ActivityState %in% "Income without Work",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors3,Region,Weight)] + Activity3<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity3[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors4:=weighted.mean(ifelse(ActivityState %in% "Student",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors4,Region,Weight)] + Activity4<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity4[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors5:=weighted.mean(ifelse(ActivityState %in% "Housekeeper",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors5,Region,Weight)] + Activity5<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity5[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors6:=weighted.mean(ifelse(ActivityState %in% "Other",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors6,Region,Weight)] + Activity6<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity6[,Weight:=NULL] + + Activity1<-merge(Activity1,Activity2,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity3,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity4,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity5,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity6,by =c("Region"),all.x=TRUE) + # write.xlsx(ActivityPoorsRegion, "D:/R/Poors.xlsx",sheetName = "Activity1") + + + ##### Activity #####Country########## + Activity<-Total[FinalPoor==1,Activity_Poors1:=weighted.mean(ifelse(ActivityState %in% "Employed",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors1,Region,Weight)] + Activity1<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity1[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors2:=weighted.mean(ifelse(ActivityState %in% "Unemployed",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors2,Region,Weight)] + Activity2<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity2[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors3:=weighted.mean(ifelse(ActivityState %in% "Income without Work",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors3,Region,Weight)] + Activity3<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity3[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors4:=weighted.mean(ifelse(ActivityState %in% "Student",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors4,Region,Weight)] + Activity4<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity4[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors5:=weighted.mean(ifelse(ActivityState %in% "Housekeeper",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors5,Region,Weight)] + Activity5<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity5[,Weight:=NULL] + + Activity<-Total[FinalPoor==1,Activity_Poors6:=weighted.mean(ifelse(ActivityState %in% "Other",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors6,Region,Weight)] + Activity6<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity6[,Weight:=NULL] + + Activity1<-merge(Activity1,Activity2,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity3,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity4,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity5,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity6,by =c("Region"),all.x=TRUE) +# write.xlsx(ActivityPoorsRegion, "D:/R/Poors.xlsx",sheetName = "Activity2",append = TRUE) +######################################################### + ####################################################### + ##################################################### + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors1:=weighted.mean(ifelse(EduLevel0 %in% "Illiterate",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors1,Region,Weight)] + Activity1<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity1[,Weight:=NULL] + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors2:=weighted.mean(ifelse(EduLevel0 %in% "Elementary",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors2,Region,Weight)] + Activity2<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity2[,Weight:=NULL] + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors3:=weighted.mean(ifelse(EduLevel0 %in% "Middle",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors3,Region,Weight)] + Activity3<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity3[,Weight:=NULL] + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors4:=weighted.mean(ifelse(EduLevel0 %in% "High" | EduLevel0 %in% "Pre",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors4,Region,Weight)] + Activity4<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity4[,Weight:=NULL] + + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors5:=weighted.mean(ifelse(EduLevel0 %in% "University",1,0),Weight),by=Region][order(Region)] + Activity<-Activity[,.(Activity_Poors5,Region,Weight)] + Activity5<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region)] + Activity5[,Weight:=NULL] + + Activity1<-merge(Activity1,Activity2,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity3,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity4,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity5,by =c("Region"),all.x=TRUE) + + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors1:=weighted.mean(ifelse(EduLevel0 %in% "Illiterate",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors1,Region,Weight)] + Activity1<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity1[,Weight:=NULL] + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors2:=weighted.mean(ifelse(EduLevel0 %in% "Elementary",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors2,Region,Weight)] + Activity2<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity2[,Weight:=NULL] + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors3:=weighted.mean(ifelse(EduLevel0 %in% "Middle",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors3,Region,Weight)] + Activity3<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity3[,Weight:=NULL] + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors4:=weighted.mean(ifelse(EduLevel0 %in% "High" | EduLevel0 %in% "Pre",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors4,Region,Weight)] + Activity4<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity4[,Weight:=NULL] + + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors5:=weighted.mean(ifelse(EduLevel0 %in% "University",1,0),Weight)] + Activity<-Activity[,.(Activity_Poors5,Region,Weight)] + Activity5<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity5[,Weight:=NULL] + + Activity1<-merge(Activity1,Activity2,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity3,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity4,by =c("Region"),all.x=TRUE) + Activity1<-merge(Activity1,Activity5,by =c("Region"),all.x=TRUE) + + + Activity<-Total[FinalPoor==1 & ActivityState=="Income without Work",Activity_Poors1:=weighted.mean(ifelse(tenure %in% "OwnLandandBuilding" | + tenure %in% "Apartment",1,0),Weight),] + Activity<-Activity[,.(Activity_Poors1,Region,Weight)] + Activity1<-Activity[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE)] + Activity1[,Weight:=NULL] + + +#} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/96-Foods essential groups.R b/R/Archive/November 2019/96-Foods essential groups.R new file mode 100644 index 00000000..a2b8e5b2 --- /dev/null +++ b/R/Archive/November 2019/96-Foods essential groups.R @@ -0,0 +1,566 @@ +# Foods essential groups +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + +################################################ +################ Morgh ######################## +################################################ +cat("\n\n================ Morgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Morgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","MorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,MorghExpenditure:=as.numeric(MorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,MorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + MorghData <- TF[,lapply(.SD,sum),by=HHID] + save(MorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Morghs.rda")) +} + +################################################ +################ Cow ######################## +################################################ +cat("\n\n================ Cow =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Cow)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","CowExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,CowExpenditure:=as.numeric(CowExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,CowKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + CowData <- TF[,lapply(.SD,sum),by=HHID] + save(CowData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Cows.rda")) +} + +################################################ +################ Sheep ######################## +################################################ +cat("\n\n================ Sheep =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Sheep)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","SheepExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,SheepExpenditure:=as.numeric(SheepExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,SheepKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + SheepData <- TF[,lapply(.SD,sum),by=HHID] + save(SheepData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Sheeps.rda")) +} + +################################################ +################ Berenj ######################## +################################################ +cat("\n\n================ Berenj =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Berenj)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","BerenjExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,BerenjExpenditure:=as.numeric(BerenjExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,BerenjKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + BerenjData <- TF[,lapply(.SD,sum),by=HHID] + save(BerenjData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Berenjs.rda")) +} + +################################################ +################ Roghan ######################## +################################################ +cat("\n\n================ Roghan =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Roghan)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","RoghanExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,RoghanExpenditure:=as.numeric(RoghanExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,RoghanKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + RoghanData <- TF[,lapply(.SD,sum),by=HHID] + save(RoghanData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Roghans.rda")) +} + +################################################ +################ Tokhmemorgh ######################## +################################################ +cat("\n\n================ Tokhmemorgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Tokhmemorgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","TokhmemorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,TokhmemorghExpenditure:=as.numeric(TokhmemorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,TokhmemorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TokhmemorghData <- TF[,lapply(.SD,sum),by=HHID] + save(TokhmemorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Tokhmemorghs.rda")) +} + +################################################ +################ Nokhod ######################## +################################################ +cat("\n\n================ Nokhod =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Nokhod)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","NokhodExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,NokhodExpenditure:=as.numeric(NokhodExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,NokhodKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + NokhodData <- TF[,lapply(.SD,sum),by=HHID] + save(NokhodData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Nokhods.rda")) +} + +################################################ +################ Lapeh ######################## +################################################ +cat("\n\n================ Lapeh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Lapeh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","LapehExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,LapehExpenditure:=as.numeric(LapehExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,LapehKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + LapehData <- TF[,lapply(.SD,sum),by=HHID] + save(LapehData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Lapehs.rda")) +} + +################################################ +################ Loobia_Chiti ######################## +################################################ +cat("\n\n================ Loobia_Chiti =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Loobia_Chiti)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","Loobia_ChitiExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,Loobia_ChitiExpenditure:=as.numeric(Loobia_ChitiExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,Loobia_ChitiKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + Loobia_ChitiData <- TF[,lapply(.SD,sum),by=HHID] + save(Loobia_ChitiData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Loobia_Chitis.rda")) +} + +################################################ +################ Loobia_Ghermez ######################## +################################################ +cat("\n\n================ Loobia_Ghermez =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Loobia_Ghermez)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","Loobia_GhermezExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,Loobia_GhermezExpenditure:=as.numeric(Loobia_GhermezExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,Loobia_GhermezKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + Loobia_GhermezData <- TF[,lapply(.SD,sum),by=HHID] + save(Loobia_GhermezData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Loobia_Ghermezs.rda")) +} + +################################################ +################ Adas ######################## +################################################ +cat("\n\n================ Adas =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Adas)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","AdasExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,AdasExpenditure:=as.numeric(AdasExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,AdasKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + AdasData <- TF[,lapply(.SD,sum),by=HHID] + save(AdasData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Adass.rda")) +} + +################################################ +####### Load Additional Information ############# +################################################ +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +HHBase<-HHBase[,.(HHID,Region,ProvinceCode)] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) +SMD<-SMD[,.(HHID,Decile,Weight,Dimension,EqSizeOECD,Total_Exp_Month_Per_nondurable)] + +################################################ +####### Merge Information ############# +################################################ + +Total<-merge(HHBase,SMD,all = TRUE) +Total<-merge(Total,MorghData,all = TRUE) +Total<-merge(Total,SheepData,all = TRUE) +Total<-merge(Total,CowData,all = TRUE) +Total<-merge(Total,BerenjData,all = TRUE) +Total<-merge(Total,RoghanData,all = TRUE) +Total<-merge(Total,TokhmemorghData,all = TRUE) +Total<-merge(Total,NokhodData,all = TRUE) +Total<-merge(Total,LapehData,all = TRUE) +Total<-merge(Total,Loobia_ChitiData,all = TRUE) +Total<-merge(Total,Loobia_GhermezData,all = TRUE) +Total<-merge(Total,AdasData,all = TRUE) + +for (col in c("MorghExpenditure","MorghKG", + "SheepExpenditure","SheepKG", + "CowExpenditure","CowKG", + "BerenjExpenditure","BerenjKG", + "RoghanExpenditure","RoghanKG", + "NokhodExpenditure","NokhodKG", + "LapehExpenditure","LapehKG", + "Loobia_ChitiExpenditure","Loobia_ChitiKG", + "Loobia_GhermezExpenditure","Loobia_GhermezKG", + "AdasExpenditure","AdasKG", + "TokhmemorghExpenditure","TokhmemorghKG")) Total[is.na(get(col)), (col) := 0] + +Total<-Total[Decile %in% 1:10] + +################################################ +############ Results ############# +################################################ +#Morgh +Total[,weighted.mean(MorghExpenditure,Weight),by=Decile][order(Decile)] +Total[,weighted.mean(MorghKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(MorghExpenditure,Weight),by=.(Decile,Region)][order(Region,Decile)] +Total[,weighted.mean(MorghKG,Weight),by=.(Decile,Region)][order(Region,Decile)] + +#Cow +Total[,weighted.mean(CowExpenditure,Weight),by=Decile][order(Decile)] +Total[,weighted.mean(CowKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(CowExpenditure,Weight),by=.(Decile,Region)][order(Region,Decile)] +Total[,weighted.mean(CowKG,Weight),by=.(Decile,Region)][order(Region,Decile)] + +#sheep +Total[,weighted.mean(SheepExpenditure,Weight),by=Decile][order(Decile)] +Total[,weighted.mean(SheepKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(SheepExpenditure,Weight),by=.(Decile,Region)][order(Region,Decile)] +Total[,weighted.mean(SheepKG,Weight),by=.(Decile,Region)][order(Region,Decile)] + + +#Roghan +Total[,weighted.mean(RoghanExpenditure,Weight),by=Decile][order(Decile)] +Total[,weighted.mean(RoghanKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(RoghanExpenditure,Weight),by=.(Decile,Region)][order(Region,Decile)] +Total[,weighted.mean(RoghanKG,Weight),by=.(Decile,Region)][order(Region,Decile)] + + +#Berenj +Total[,weighted.mean(BerenjExpenditure,Weight),by=Decile][order(Decile)] +Total[,weighted.mean(BerenjKG,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(BerenjExpenditure,Weight),by=.(Decile,Region)][order(Region,Decile)] +Total[,weighted.mean(BerenjKG,Weight),by=.(Decile,Region)][order(Region,Decile)] + +#Dimension +Total[,weighted.mean(Dimension,Weight),by=.(Decile)][order(Decile)] + +Total[,weighted.mean(Dimension,Weight),by=.(Decile,Region)][order(Region,Decile)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/97-Foods essential groups TS.R b/R/Archive/November 2019/97-Foods essential groups TS.R new file mode 100644 index 00000000..2782e589 --- /dev/null +++ b/R/Archive/November 2019/97-Foods essential groups TS.R @@ -0,0 +1,382 @@ +# Foods essential groups information +# +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + +################################################ +################ Morgh ######################## +################################################ +cat("\n\n================ Morgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Morgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","MorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,MorghExpenditure:=as.numeric(MorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,MorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + MorghData <- TF[,lapply(.SD,sum),by=HHID] + save(MorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Morghs.rda")) + } + +################################################ +################ Cow ######################## +################################################ +cat("\n\n================ Cow =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Cow)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","CowExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,CowExpenditure:=as.numeric(CowExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,CowKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + CowData <- TF[,lapply(.SD,sum),by=HHID] + save(CowData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Cows.rda")) +} + +################################################ +################ Sheep ######################## +################################################ +cat("\n\n================ Sheep =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Sheep)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","SheepExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,SheepExpenditure:=as.numeric(SheepExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,SheepKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + SheepData <- TF[,lapply(.SD,sum),by=HHID] + save(SheepData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Sheeps.rda")) +} + +################################################ +################ BerenjI ######################## +################################################ +cat("\n\n================ BerenjI =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_BerenjI)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","BerenjIExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,BerenjIExpenditure:=as.numeric(BerenjIExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,BerenjIKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + BerenjIData <- TF[,lapply(.SD,sum),by=HHID] + save(BerenjIData, file = paste0(Settings$HEISProcessedPath,"Y",year,"BerenjIs.rda")) +} + +################################################ +################ BerenjF ######################## +################################################ +cat("\n\n================ BerenjF =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_BerenjF)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","BerenjFExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,BerenjFExpenditure:=as.numeric(BerenjFExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,BerenjFKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + BerenjFData <- TF[,lapply(.SD,sum),by=HHID] + save(BerenjFData, file = paste0(Settings$HEISProcessedPath,"Y",year,"BerenjFs.rda")) +} + +################################################ +################ Roghan ######################## +################################################ +cat("\n\n================ Roghan =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Roghan)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","RoghanExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,RoghanExpenditure:=as.numeric(RoghanExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,RoghanKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + RoghanData <- TF[,lapply(.SD,sum),by=HHID] + save(RoghanData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Roghans.rda")) +} + +################################################ +################ Tokhmemorgh ######################## +################################################ +cat("\n\n================ Tokhmemorgh =====================================\n") + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Tokhmemorgh)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","Kilos","Grams","TokhmemorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode | Code==11511] + if(year >= 84){ + TF[,TokhmemorghExpenditure:=as.numeric(TokhmemorghExpenditure)] + } + for (col in c("Kilos","Grams")) TF[is.na(get(col)), (col) := 0] + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[is.na(TF)] <- 0 + TF[,TokhmemorghKG:=Kilos+(Grams*0.001)] + + TF[,Code:=NULL] + TF[,Kilos:=NULL] + TF[,Grams:=NULL] + TF[is.na(TF)] <- 0 + TokhmemorghData <- TF[,lapply(.SD,sum),by=HHID] + save(TokhmemorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Tokhmemorghs.rda")) +} + +################################################ +####### Load Additional Information ############# +################################################ +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +HHBase<-HHBase[,.(HHID,Region,ProvinceCode)] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) +SMD<-SMD[,.(HHID,Decile,Weight,Dimension,EqSizeOECD,Total_Exp_Month_Per_nondurable)] + +################################################ +####### Merge Information ############# +################################################ + +Total<-merge(HHBase,SMD,all = TRUE) +Total<-merge(Total,MorghData,all = TRUE) +Total<-merge(Total,SheepData,all = TRUE) +Total<-merge(Total,CowData,all = TRUE) +Total<-merge(Total,BerenjIData,all = TRUE) +Total<-merge(Total,BerenjFData,all = TRUE) +Total<-merge(Total,RoghanData,all = TRUE) +Total<-merge(Total,TokhmemorghData,all = TRUE) + + +for (col in c("MorghExpenditure","MorghKG", + "SheepExpenditure","SheepKG", + "CowExpenditure","CowKG", + "BerenjIExpenditure","BerenjIKG", + "BerenjFExpenditure","BerenjFKG", + "RoghanExpenditure","RoghanKG", + "TokhmemorghExpenditure","TokhmemorghKG")) Total[is.na(get(col)), (col) := 0] + +Total<-Total[Decile %in% 1:10] +save(Total,file = paste0("Y",year,"Total.rda")) +#load(file=paste0("Y",year,"Total.rda")) +################################################ +############ Results ############# +################################################ +#Dimension +Total[,weighted.mean(Dimension,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(Dimension,Weight)] + +#BerenjI +Total[,weighted.mean(BerenjIKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(BerenjIKG,Weight)] + +#BerenjF +Total[,weighted.mean(BerenjFKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(BerenjFKG,Weight)] + +#Roghan +Total[,weighted.mean(RoghanKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(RoghanKG,Weight)] + +#Tokhmemorgh +Total[,weighted.mean(TokhmemorghKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(TokhmemorghKG,Weight)] + +#Cow +Total[,weighted.mean(CowKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(CowKG,Weight)] + +#sheep +Total[,weighted.mean(SheepKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(SheepKG,Weight)] + +#Morgh +Total[,weighted.mean(MorghKG,Weight),by=.(Region)][order(Region)] +Total[,weighted.mean(MorghKG,Weight)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/98-goosht.R b/R/Archive/November 2019/98-goosht.R new file mode 100644 index 00000000..7e97a702 --- /dev/null +++ b/R/Archive/November 2019/98-goosht.R @@ -0,0 +1,138 @@ +# 21-HHFoods.R +# Builds the Food expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHFoods =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) +library(readxl) + + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Morgh)) + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","MorghExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,MorghExpenditure:=as.numeric(MorghExpenditure)] + } + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + MorghData <- TF[,lapply(.SD,sum),by=HHID] + save(MorghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Morghs.rda")) +} + + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Cow)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","CowExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,CowExpenditure:=as.numeric(CowExpenditure)] + } + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + CowData <- TF[,lapply(.SD,sum),by=HHID] + save(CowData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Cows.rda")) +} + + + +FoodTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Sheep)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- FoodTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + pcols <- intersect(names(TF),c("HHID","Code","SheepExpenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + if(year >= 84){ + TF[,SheepExpenditure:=as.numeric(SheepExpenditure)] + } + TF[,Code:=NULL] + TF[is.na(TF)] <- 0 + SheepData <- TF[,lapply(.SD,sum),by=HHID] + save(SheepData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Sheeps.rda")) +} + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Final.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Foods.rda")) + +TTT<-merge(Final,FoodData,all = TRUE) +TTT<-merge(TTT,MorghData,all = TRUE) +TTT<-merge(TTT,SheepData,all = TRUE) +TTT<-merge(TTT,CowData,all = TRUE) + +for (col in c("FoodExpenditure","MorghExpenditure", + "SheepExpenditure","CowExpenditure")) + TTT[is.na(get(col)), (col) := 0] + +TTT<-TTT[,R1:=MorghExpenditure/FoodExpenditure] +TTT<-TTT[,R2:=CowExpenditure/FoodExpenditure] +TTT<-TTT[,R3:=SheepExpenditure/FoodExpenditure] + +#TTT[,weighted.mean(R1,Weight)] +TTT[FinalPoor==0 ,weighted.mean(R1,Weight)] +#TTT[,weighted.mean(R2,Weight)] +TTT[FinalPoor==0 ,weighted.mean(R2,Weight)] +#TTT[,weighted.mean(R3,Weight)] +TTT[FinalPoor==0 ,weighted.mean(R3,Weight)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/November 2019/Back to back_Hist.R b/R/Archive/November 2019/Back to back_Hist.R new file mode 100644 index 00000000..5457eb40 --- /dev/null +++ b/R/Archive/November 2019/Back to back_Hist.R @@ -0,0 +1,152 @@ +#Hist +# Licence: GPL-3 +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Hist =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) +library(plotrix) +library(Hmisc) + + +years <- Settings$startyear:Settings$endyear + +for(year in years){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + #P1<-P1[Age<20] + + #out <- histbackback(split(P1$Age, P1$Sex),ylim(), main="83") + #barplot(-out$left, col="orange" , horiz=TRUE, space=0, add=TRUE, axes=FALSE) + #barplot(out$right, col="purple", horiz=TRUE, space=0, add=TRUE, axes=FALSE) + + +} + +X <- c(rep(65, times=5), rep(25, times=5), rep(35, times=10), rep(45, times=4)) +hist(X, prob=TRUE, col="grey")# prob=TRUE for probabilities not counts +lines(density(X), col="blue", lwd=2) # add a density estimate with defaults +lines(density(X, adjust=2), lty="dotted", col="darkgreen", lwd=2) + + +foo <- c(850 , + 1250 , + 1430 , + 1560 , + 1690 , + 1980 , + 1980 , + 1980 , + 1980 , + 1980 , + 2370 , + 2370 , + 2370 , + 2370 , + 2370 , + 2700 , + 2700 , + 2700 , + 2700 , + 2700 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2460 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 , + 2010 +) +hist(foo, prob=TRUE) +curve(dnorm(x, mean=mean(foo), sd=sd(foo)), add=TRUE) + + +Poverty <- read_excel("C:/Users/pc1/Desktop/Poverty.xlsx",sheet = "Age2") +save(Poverty,file = "Ages_Calorie.rda") + + +p1<-ggplot(Poverty,aes(Age,Needed_Calorie,fill=Sex,alpha=0.5))+geom_col(alpha=0.5,position="dodge") +p2<-ggplot(Poverty,aes(Age,Needed_Calorie,fill=Sex))+stat_smooth(aes(y=Needed_Calorie,x=Age),method="gam",se=FALSE,formula=y~s(x,k=7)) +p3<-ggplot(Poverty,aes(Age,Needed_Calorie,fill=Sex,alpha=0.5))+geom_density(stat="identity") + +library(gridExtra) +grid.arrange(p1,p2,p3,nrow=3) diff --git a/R/Archive/November 2019/IranProvinceMap.Rproj b/R/Archive/November 2019/IranProvinceMap.Rproj new file mode 100644 index 00000000..b42a3ccb --- /dev/null +++ b/R/Archive/November 2019/IranProvinceMap.Rproj @@ -0,0 +1,16 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: knitr +LaTeX: XeLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes diff --git a/R/Archive/November 2019/Test- Arin Shahbazian.R b/R/Archive/November 2019/Test- Arin Shahbazian.R new file mode 100644 index 00000000..54b9f693 --- /dev/null +++ b/R/Archive/November 2019/Test- Arin Shahbazian.R @@ -0,0 +1,53 @@ +#Test- Arin Shahbazian +rm(list=ls()) + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + +year<-96 + +load( file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) + +Total<-merge(MD,SMD[,.(HHID,Decile,Percentile)],by="HHID") + +Total<-Total[,FoodExp_Per:=FoodExpenditure/EqSizeCalory] +Total2<-Total[FoodExp_Per>2000000] + + + +Total2[,weighted.mean(FoodExp_Per,Weight)] +Total2[,weighted.mean(FoodExp_Per,Weight),by=.(Region,NewArea_Name)][order(V1)] +Total2<-Total2[,FoodExp_per_Ostani:=weighted.mean(FoodExp_Per,Weight),by=.(Region,NewArea_Name)] + +Total2<-Total2[Size>3,Behdasht1:=weighted.mean(Behdasht_Exp,Weight),by=.(Size)] +x<-Total2[,.(HHID,Size,Behdasht_Exp,Behdasht1,Weight)] + + +x[,weighted.mean(Behdasht1,Weight,na.rm = TRUE)] + +for (col in c("Behdasht1")) x[is.na(get(col)), (col) := 0] + + +set1 <- c( "FoodExpenditure", "Behdasht_Exp","Amusement_Exp") +Total2[, Exp3 := Reduce(`+`, .SD), .SDcols=set1] + + +Total3<-Total2[,.(Region,NewArea_Name,FoodExpenditure, + Behdasht_Exp,Amusement_Exp,Weight)] +Total4 <- Total3[,lapply(.SD,sum),by=.(Region,NewArea_Name)] + +load( file = paste0(Settings$HEISProcessedPath,"Y",year,"Farhangis2.rda")) + +Total2<-merge(Total2,FarhangiData,all.x = TRUE) +for (col in c("Code","FarhangiExpenditure")) Total2[is.na(get(col)), (col) := 0] + +cat(Total2[,weighted.mean(FoodKCaloriesHH_Per,Weight)],"\n", + Total2[,weighted.mean(FoodProtein_Per,Weight)],"\n", + Total2[,weighted.mean(FoodExp_Per,Weight)],"\n", + Total2[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight)]) + diff --git a/R/Archive/November 2019/Test2- Arin Shahbazian.R b/R/Archive/November 2019/Test2- Arin Shahbazian.R new file mode 100644 index 00000000..5b11a732 --- /dev/null +++ b/R/Archive/November 2019/Test2- Arin Shahbazian.R @@ -0,0 +1,45 @@ +#Test2- Arin Shahbazian +rm(list=ls()) + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + +year<-96 + +load( file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +TD<-MD +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + +Total<-merge(TD,SMD[,.(HHID,Decile,Percentile)],by="HHID") +Total<-merge(Total,MD[,.(HHID,Bundle_Value,PEngel,Engel, + FPLine,PovertyLine,FinalFoodPoor,FinalPoor)]) + +Total[,weighted.mean(FinalPoor,Weight),by=.(Region)] +Total[,weighted.mean(FinalPoor,Weight*Size),by=.(Region)] + +Total[,weighted.mean(FinalPoor,Weight*Size),by=.(ProvinceCode)] + +Total<-Total[,Diet:=ifelse(FinalFoodPoor==1 & FinalPoor==0,1,0)] +Total[,weighted.mean(Diet,Weight*Size),by=.(Region)] +Total[NewArea_Name=="Sh_Tehran",weighted.mean(Diet,Weight)] + +TotalD <- Total[Diet==1, + .(.N,Engle1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight)), + by=.(Region,NewArea_Name)] +TotalD<-TotalD[,Sample:=N] +TotalD[,N:=NULL] + +TotalS<-Total[FinalPoor==1, + .(.N,Engle2=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight)), + by=.(Region,NewArea_Name)] +TotalS<-TotalS[,Sample2:=N] +TotalD[,N:=NULL] + +TotalT<-merge(TotalD,TotalS[,.(Region,NewArea_Name,Engle2,Sample2)]) + + diff --git a/R/Archive/November 2019/Wooman Heads.R b/R/Archive/November 2019/Wooman Heads.R new file mode 100644 index 00000000..e98a2b3d --- /dev/null +++ b/R/Archive/November 2019/Wooman Heads.R @@ -0,0 +1,414 @@ +# Wooman Heads.R +# +# +# Copyright © 2019: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ HHBase =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(data.table) +library(stringr) + + +year<-96 + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + + if(year >86 & year < 92 ){ + load(file=paste0(Settings$HEISCountyCodePath,"Y",year,Settings$HEISCountyCodeFileName,".rda")) + } + + if(year < 87){ # RxxData & UxxData tables are provided Since 1387 + RData <- Tables[[paste0("R",year,"P2")]][,1,with=FALSE] + RData[, Region:=factor(x="Rural",levels=c("Urban","Rural"))] + UData <- Tables[[paste0("U",year,"P2")]][,1,with=FALSE] + UData[, Region:=factor(x="Urban",levels=c("Urban","Rural"))] + HHBase <- rbind(RData, UData) + rm(RData,UData) + setnames(HHBase,c("HHID","Region")) + HHBase[,Year:=year] + if(year==74) + HHBase[,HHIDs:=formatC(HHID, width = 8, flag = "0")] + else if(year<77) + HHBase[,HHIDs:=formatC(HHID, width = 7, flag = "0")] + else if(year %in% 77:86) + HHBase[,HHIDs:=formatC(HHID, width = 9, flag = "0")] + + if(year < 77) + HHBase[,Quarter:=as.integer(str_sub(HHIDs,4,4))] + else + HHBase[,Quarter:=as.integer(str_sub(HHIDs,6,6))] + HHBase[,Month:=NA_integer_] + }else{ + RData <- Tables[[paste0("R",year,"DATA")]][,c(1:2),with=FALSE] + RData[, Region:=factor(x="Rural",levels=c("Urban","Rural"))] + UData <- Tables[[paste0("U",year,"DATA")]][,c(1:2),with=FALSE] + UData[, Region:=factor(x="Urban",levels=c("Urban","Rural"))] + HHBase <- rbind(RData, UData) + rm(RData,UData) + setnames(HHBase,c("HHID","Month","Region")) + HHBase[,Month:=ifelse(Month==1,12,Month - 1)] + HHBase[,Quarter:=(Month-1)%/%3+1] + HHBase[,HHIDs:=as.character(HHID)] + } + + if(year >86 & year < 92 ){ + HHBase<-merge(HHBase,ShCode,by="HHID",all.x = TRUE) + } + + HHBase <- HHBase[!is.na(HHID)] + HHBase[,ProvinceCode:=as.integer(str_sub(HHIDs,2,3))] + + if(year <87 | year > 91 ){ + HHBase[,CountyCode:=as.integer(str_sub(HHIDs,2,5))] + } + + if(year >86 & year < 92 ){ + HHBase[,CountyCode:=as.integer(SHCode)] + } + + HHBase[,Year:=year] + HHBase <- HHBase[,.(HHID,Region,Year,Quarter,Month,ProvinceCode,CountyCode)] + + HHBase[,NewArea:=ProvinceCode] + HHBase[Region=="Urban" & + CountyCode %in% c(2301,303,603,707, + 916,1002,3001,502,2202, + 401,808,1,1105, + 1304,2105,105), + NewArea:=CountyCode] + + #Tehran-Alborz + if(year >76 & year < 92 ){ + HHBase[ Region=="Urban" & CountyCode %in% c(2305), + NewArea:=3001] + } + + if(year >76 & year < 92 ){ + HHBase[CountyCode %in% c(2308,2315,2309), + NewArea:=30] + } + + #Khorasan + if(year >76 & year < 87 ){ + HHBase[Region=="Urban" & CountyCode %in% c(916), + NewArea:=916] + } + + if(year >76 & year < 87 ){ + HHBase[CountyCode %in% c(901,902,909,924,925), + NewArea:=28] + } + + if(year >76 & year < 87 ){ + HHBase[CountyCode %in% c(903,911,912,921), + NewArea:=29] + } + + #Ghazvin + if(year >76 & year < 82 ){ + HHBase[CountyCode %in% c(2311), + NewArea:=26] + } + + #Golestan + if(year >76 & year < 82 ){ + HHBase[CountyCode %in% c(212,203,209,211,213,217), + NewArea:=27] + } + + + HHBase[,NewArea_Name:=as.factor(NewArea)] + + HHBase[NewArea==0,NewArea_Name:="Markazi"] + HHBase[NewArea==1,NewArea_Name:="Gilan"] + HHBase[NewArea==2,NewArea_Name:="Mazandaran"] + HHBase[NewArea==3,NewArea_Name:="Az_Sharghi"] + HHBase[NewArea==4,NewArea_Name:="Az_Gharbi"] + HHBase[NewArea==5,NewArea_Name:="Kermanshah"] + HHBase[NewArea==6,NewArea_Name:="Khoozestan"] + HHBase[NewArea==7,NewArea_Name:="Fars"] + HHBase[NewArea==8,NewArea_Name:="Kerman"] + HHBase[NewArea==9,NewArea_Name:="Khorasan_Razavi"] + HHBase[NewArea==10,NewArea_Name:="Esfahan"] + HHBase[NewArea==11,NewArea_Name:="Sistan"] + HHBase[NewArea==12,NewArea_Name:="Kordestan"] + HHBase[NewArea==13,NewArea_Name:="Hamedan"] + HHBase[NewArea==14,NewArea_Name:="Chaharmahal"] + HHBase[NewArea==15,NewArea_Name:="Lorestan"] + HHBase[NewArea==16,NewArea_Name:="Ilam"] + HHBase[NewArea==17,NewArea_Name:="Kohkilooye"] + HHBase[NewArea==18,NewArea_Name:="Booshehr"] + HHBase[NewArea==19,NewArea_Name:="Zanjan"] + HHBase[NewArea==20,NewArea_Name:="Semnan"] + HHBase[NewArea==21,NewArea_Name:="Yazd"] + HHBase[NewArea==22,NewArea_Name:="Hormozgan"] + HHBase[NewArea==23,NewArea_Name:="Tehran"] + HHBase[NewArea==24,NewArea_Name:="Ardebil"] + HHBase[NewArea==25,NewArea_Name:="Ghom"] + HHBase[NewArea==26,NewArea_Name:="Ghazvin"] + HHBase[NewArea==27,NewArea_Name:="Golestan"] + HHBase[NewArea==28,NewArea_Name:="Khorasan_Shomali"] + HHBase[NewArea==29,NewArea_Name:="Khorasan_Jonoobi"] + HHBase[NewArea==30,NewArea_Name:="Alborz"] + HHBase[NewArea==2301,NewArea_Name:="Sh_Tehran"] + HHBase[NewArea==303,NewArea_Name:="Sh_Tabriz"] + HHBase[NewArea==603,NewArea_Name:="Sh_Ahvaz"] + HHBase[NewArea==707,NewArea_Name:="Sh_Shiraz"] + HHBase[NewArea==916,NewArea_Name:="Sh_Mashhad"] + HHBase[NewArea==1002,NewArea_Name:="Sh_Esfahan"] + HHBase[NewArea==3001,NewArea_Name:="Sh_Karaj"] + HHBase[NewArea==502,NewArea_Name:="Sh_Kermanshah"] + HHBase[NewArea==2202,NewArea_Name:="Sh_Bandarabas"] + HHBase[NewArea==401,NewArea_Name:="Sh_Urmia"] + HHBase[NewArea==105,NewArea_Name:="Sh_Rasht"] + HHBase[NewArea==1105,NewArea_Name:="Sh_Zahedan"] + HHBase[NewArea==808,NewArea_Name:="Sh_Kerman"] + HHBase[NewArea==1304,NewArea_Name:="Sh_Hamedan"] + HHBase[NewArea==2105,NewArea_Name:="Sh_Yazd"] + HHBase[NewArea==1 & CountyCode==1 ,NewArea_Name:="Sh_Arak"] + + +library(readxl) +library(data.table) +library(stringr) + +#P1<-P1[,`:=`(Dimension=.N),by=.(HHID)] + +P1Cols <- data.table(read_excel(Settings$MetaDataFilePath, Settings$MDS_P1Cols)) + +EduCodesA <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_A)) +EduCodesB <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_B)) +EduCodesC <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_EC_C)) + + + + + + + + + if(year<=84){ + EduCodeT <- EduCodesA + }else if(year %in% 85:92){ + EduCodeT <- EduCodesB + }else{ + EduCodeT <- EduCodesC + } + + P1 <- rbind(Tables[[paste0("R",year,"P1")]],Tables[[paste0("U",year,"P1")]]) + nP1 <- names(P1) + if(length(which(sapply(P1, is.character)))>0){ + P1c <- P1[,lapply(.SD,iconv,"WINDOWS-1252","UTF-8"), .SDcols=sapply(P1,is.character)] + P1nc <- P1[,!sapply(P1,is.character),with=FALSE] + P1 <- cbind(P1c,P1nc)[,nP1,with=FALSE] + } + + a <- unlist(P1Cols[P1Cols$Year==year,]) + ind <- which(!is.na(a))[-1] + setnames(P1,a[ind],names(a[ind])) + + f <- function(x){as.numeric(str_trim(x))} + P1 <- P1[, lapply(.SD, f)] # , .SDcols=which(sapply(P1, class)=="character")] + + + P1[is.na(Age),Age:=0L] + P1[,Relationship :=factor(Relationship, levels=1:9, + labels=c("Head","Spouse","Child","Child-in-Law", + "Grand-Child","Parent","Sister/Brother", + "Other Family","Non-Family"))] + + P1[,Sex := factor(Sex, levels=1:2, + labels=c("Male","Female"))] + + if(year %in% 63:64){ + P1[,Literate:=LitState<=3] + }else if(year %in% 65:68){ + P1[,Literate:=LitState<=2] + }else{ + P1[,Literate:=Literate==1] + } + + if(year %in% 63:68){ + P1[,Student:=LitState==1] + }else{ + P1[,Student:=Student==1] + } + + P1[,EduYears:=EduCodeT$yoe[match(EduCode,EduCodeT$Code)]] + P1$EduYears[P1$Literate==FALSE] <- 0 + P1[,EduLevel:=cut(EduYears,breaks=c(-1,0,6,12,22), + labels= c("Illiterate","Primary","Secondary","University"))] + P1[,EduLevel0:=cut(EduYears,breaks=c(-1,0,6,9,11,12,22), + labels= c("Illiterate","Elementary","Middle","High","Pre","University"))] + + P1[,ActivityState:=as.numeric(substr(as.character(ActivityState),1,1))] + + if(year %in% 63:64){ + P1[,ActivityState:=factor(ActivityState,1:9, + c("Employed","Seasonal Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Unemployed Not Looking for Job", + "Other","Former Member"))] + levels(P1$ActivityState) <- c(c("Employed","Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Other", + "Other","Other")) + }else if(year %in% 65:68){ + P1[,ActivityState:=factor(ActivityState,1:8, + c("Employed","Seasonal Unemployed","Income without Work", + "Unemployed","Student","Housekeeper", + "Other","Former Member"))] + levels(P1$ActivityState) <- c(c("Employed","Unemployed","Income without Work", + "Unemployed","Student","Housekeeper","Other", + "Other")) + }else{ + P1[,ActivityState:=factor(ActivityState,1:6, + c("Employed","Unemployed","Income without Work", + "Student","Housekeeper","Other"))] + } + + if(year %in% 66:68){ + P1[,MarritalState:=factor(NA,1:4, + c("Married","Widowed","Divorced","Bachelor"))] + }else{ + P1[,MarritalState:=factor(MarritalState,1:4, + c("Married","Widowed","Divorced","Bachelor"))] + } + + + + + P <- copy(P1) + + P <- P[order(P$HHID),] + + + B <- P[IndivNo==1] + setnames(B,2:length(B),sapply(X=names(B)[2:length(B)],function(X){paste("H",X,sep="")})) + B <- B[order(HHID,HIndivNo)] + B <- B[!duplicated(B$HHID),] + + B[,HEmployed:=HActivityState=="Employed"] + B[,HUnemployed:=HActivityState=="Unemployed"] + B[,HIncomeWOWork:=HActivityState=="Income without Work"] + + B <- B[!is.na(HActivityState) & !is.na(HLiterate)] + + + P[,Size:=1] + P[,NKids:=ifelse(Age<18,1,0)] + + P[,NInfants:=ifelse(Age<=2,1,0)] + P[,NSmallKids:=ifelse(Age>=3 & Age<=13, 1, 0)] + + P[,NElementary:= ifelse(EduLevel0=="Elementary" & Student==TRUE,1,0)] + P[,NMiddle:= ifelse(EduLevel0=="Middle" & Student==TRUE,1,0)] + P[,NHigh:= ifelse(EduLevel0=="High" & Student==TRUE,1,0)] + P[,NPre:= ifelse(EduLevel0=="Pre" & Student==TRUE,1,0)] + + + PSum <- P[,lapply(.SD,sum,na.rm=TRUE), + .SDcols=c("Size","NKids","NInfants","NSmallKids","NElementary", + "NMiddle","NHigh","NPre"),#,"TotalIncome"), + by="HHID"] + + + HHI <- merge(B,PSum,by="HHID") + HHI[,EqSizeOECD := ifelse(Size==NKids,1+(NKids-1)*0.5, + 1 + (Size-NKids-1)*0.7 + (NKids)*0.5)] + HHI <- HHI[!is.na(HLiterate)] + + rm(P,B,PSum) + + + HHBase<-merge(HHI,HHBase) + rm(HHI) + + load(file=paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + HHWeights<- as.data.table(HHWeights) + HHWeights[,Year:=NULL] + HHBase<-merge(HHBase,HHWeights) + + HHBase[HSex=="Female",weighted.mean(HIndivNo,Weight)*sum(Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & Size==1, + weighted.mean(HIndivNo,Weight)*sum(Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female",weighted.mean(HAge,Weight),by=.(HMarritalState)] + HHBase[HSex=="Female",weighted.mean(HAge,Weight)] + + HHBase[HSex=="Female" & HAge<35, + weighted.mean(HAge,Weight)*sum(Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & HAge>35 & HAge<65, + weighted.mean(HAge,Weight)*sum(Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & HAge>65, + weighted.mean(HAge,Weight)*sum(Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female", + weighted.mean(Size,Weight),by=.(HMarritalState)] + HHBase[HSex=="Female",weighted.mean(Size,Weight)] + + HHBase[HSex=="Female", + weighted.mean(HIndivNo,Weight)*sum(Weight), + by=.(HLiterate,HMarritalState)][order(HMarritalState,HLiterate)] + + HHBase[HSex=="Female", + weighted.mean(HLiterate==FALSE,Weight)] + + HHBase[HSex=="Female" & HEduYears>12, + weighted.mean(HIndivNo,Weight)*sum(Weight), + by=.(HMarritalState)] + + HHBase[HSex=="Female" & (HLiterate==TRUE | NElementary>0 | + NMiddle>0 | NHigh>0) , + weighted.mean(HIndivNo,Weight)*sum(Weight), + by=.(HMarritalState)] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + HHBase<-merge(HHBase,MD[,.(HHID,Decile,Total_Exp_Month_Per_nondurable, + FoodExpenditure,Behdasht_Exp)]) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + HHBase<-merge(HHBase,HHHouseProperties[,.(HHID,tenure)]) + + HHBase[HSex=="Female" & Decile==1, + weighted.mean(HIndivNo,Weight)*sum(Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & Decile==2, + weighted.mean(HIndivNo,Weight)*sum(Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & Region=="Urban", + weighted.mean(Total_Exp_Month_Per_nondurable,Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & Region=="Rural", + weighted.mean(Total_Exp_Month_Per_nondurable,Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & Region=="Urban", + weighted.mean(Behdasht_Exp/EqSizeOECD,Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & Region=="Rural", + weighted.mean(Behdasht_Exp/EqSizeOECD,Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & Region=="Urban", + weighted.mean(FoodExpenditure/Size,Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & Region=="Rural", + weighted.mean(FoodExpenditure/Size,Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & (tenure=="OwnLandandBuilding" | tenure=="Apartment"), + weighted.mean(HIndivNo,Weight)*sum(Weight),by=.(HMarritalState)] + + HHBase[HSex=="Female" & (tenure=="Rented" | tenure=="Mortgage"), + weighted.mean(HIndivNo,Weight)*sum(Weight),by=.(HMarritalState)] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/November 2019/code-structure.md b/R/Archive/November 2019/code-structure.md new file mode 100644 index 00000000..93540597 --- /dev/null +++ b/R/Archive/November 2019/code-structure.md @@ -0,0 +1,15 @@ +101-110 Data Management +111-120 Socio-Economic Household Specifics +121-130 House properties +131-140 Food Expenditures +141-150 NonFood Expenditures +151-160 Food Calories +170-180 Merge Information, Poverty Lines and Rates +------------------------------------ +701-750 Other Food's and calories calculations +201-250 Income +4x Loans and Finance +6x Poverty Calculations (Other) +7x Map + Plot + Prediction + Index +8x Poors properties +9x Additional codes \ No newline at end of file diff --git a/R/Archive/November 2019/loss.csv b/R/Archive/November 2019/loss.csv new file mode 100644 index 00000000..dc762631 --- /dev/null +++ b/R/Archive/November 2019/loss.csv @@ -0,0 +1,15 @@ +share of loss,number of households,number of individuals,numbe of sample,share of households +0-0.01,705816,2699471,666,0.47 +0.01-0.02,435817,1691808,470,0.29 +0.02-0.03,193804,719833,191,0.13 +0.03-0.04,84032,346227,113,0.06 +0.04-0.05,69211,271401,84,0.05 +,,,, +share<0.05,1488680,5728740,1524,1 +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, +,,,, diff --git a/R/Archive/November 2019/modify2.R b/R/Archive/November 2019/modify2.R new file mode 100644 index 00000000..c7343f43 --- /dev/null +++ b/R/Archive/November 2019/modify2.R @@ -0,0 +1,549 @@ +library(yaml) +OS <- ifelse(version$os=="linux-gnu","Linux","Windows") +if(OS=="Linux"){ + HEISPath = "/media/majid/Document/HEIS/" +}else{ + HEISPath = "C:/HEIS/" +} +HEISCompressedPath = paste0(HEISPath,"DataCompressed/") +HEISAccessPath = paste0(HEISPath,"DataAccess/") +HEISRawPath = paste0(HEISPath,"DataRaw/") +HEISProcessedPath = paste0(HEISPath,"DataProcessed/") +HEISResultsPath = paste0(HEISPath,"DataResults/") +D80LinkDest = paste0(HEISAccessPath,"D80Link.accdb") + + +Settings <- list(HEISPath =HEISPath, + HEISCompressedPath=HEISCompressedPath, + HEISAccessPath =HEISAccessPath, + HEISRawPath =HEISRawPath, + HEISProcessedPath =HEISProcessedPath, + HEISResultsPath =HEISResultsPath, + HEISWeightsPath ="../Data/SamplingWeights/", + HEISWeightFileName="HHWeights", + HEISCountyCodePath="../Data/CountyCodes8791/", + HEISCountyCodeFileName="ShCode", + startyear=96, + endyear=97, + baseyear=95, + OS=OS, + # RawDataWebAddress ="http://www.amar.org.ir/Portals/0/amarmozuii/hazinedaramad/", + RawDataWebAddress ="https://www.amar.org.ir/Portals/0/amarmozuii/re_DataRaw_63_95_Info/", + MetaDataFilePath = "../Data/MetaData.xlsx", + GeoInfoFilePath = "../Data/GeoInfo.Shahrestan.xlsx", + MDS_CFN = "CompressedFileNames", # MetaData Sheet: Compressed File Names + MDS_P1Cols = "P1Cols", # MetaData Sheet: Columns of P1 Table + MDS_P2Cols = "P2Cols", + MDS_EC_A = "EduCodes-A", + MDS_EC_B = "EduCodes-B", + MDS_EC_C = "EduCodes-C", + MDS_EC_D = "EduCodes-D", + MDS_Food = "FoodTables", + MDS_Sheep = "SheepTables", + MDS_Cow = "CowTables", + MDS_Shir = "ShirTables", + MDS_Mast = "MastTables", + MDS_Panir = "PanirTables", + MDS_Morgh = "MorghTables", + MDS_BerenjI = "BerenjITables", + MDS_BerenjF = "BerenjFTables", + MDS_Roghan = "RoghanTables", + MDS_Tokhmemorgh = "TokhmemorghTables", + MDS_Ghand = "GhandTables", + MDS_Shekar = "ShekarTables", + MDS_Nokhod = "NokhodTables", + MDS_Lapeh = "LapehTables", + MDS_Loobia_Chiti = "Loobia_ChitiTables", + MDS_Loobia_Ghermez= "Loobia_GhermezTables", + MDS_Adas = "AdasTables", + MDS_FoodGroups = "FoodGroupTables", + MDS_Cigar = "CigarTables", + MDS_Cloth = "ClothTables", + MDS_HouseandEnergy = "HouseandEnergyTables", + MDS_Energy = "EnergyTables", + MDS_Furniture = "FurnitureTables", + MDS_Transportation= "TransportationTables", + MDS_Benzin = "BenzinTables", + MDS_Bargh = "BarghTables", + MDS_Gaz = "GazTables", + MDS_NaftSefid = "NaftSefidTables", + MDS_Communication = "CommunicationTables", + MDS_Amusement = "AmusementTables", + MDS_HotelRestaurant = "HotelRestaurantTables", + MDS_Other = "OtherTables", + MDS_Durable = "DurableTables", + MDS_Investment = "InvestmentTables", + MDS_Medical = "MedicalTables", + MDS_Hygiene = "HygieneTables", + MDS_Loans = "LoanTables", + MDS_House = "HouseTables", + MDS_Education = "EducationTables", + MDS_Insurance = "InsuranceTables", + MDS_ActivityState = "ActivityStateTables", + MDS_PubWage = "PubWageTable", + MDS_PrvWage = "PrvWageTable", + MDS_AgriInc = "AgriIncTable", + MDS_BussInc = "BussIncTable", + MDS_OtherInc = "OthrIncTable", + MDS_Retirement = "RetirementTables", + MDS_Interest = "InterestTables", + MDS_Rent = "RentTables", + MDS_Aid = "AidTables", + MDS_Homemade = "HomemadeTables", + MDS_Intra = "IntraTables", + MDS_SubsidyWage = "SubsidyTable", + MDS_Rough_Weights = "RegionWeights", + OutFoodKCXShare = 0.3, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare12 = 0.4, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare3456 = 0.2, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare78910 = 0.1, # Share of Kilo-Calory content in Expenses of outdoor food + KCaloryNeed_Adult = 2100, + KCaloryNeed_Adult_WorldBank = 2100, + KCaloryNeed_Adult_Anstitoo = 2400, + KCaloryNeed_Child = 1800, + KCaloryNeed_B0 = 850 , + KCaloryNeed_B1 = 1250 , + KCaloryNeed_B2 = 1430 , + KCaloryNeed_B3 = 1560 , + KCaloryNeed_B4 = 1690 , + KCaloryNeed_B5 = 1780 , + KCaloryNeed_B6 = 1880 , + KCaloryNeed_B7 = 1980 , + KCaloryNeed_B8 = 2080 , + KCaloryNeed_B9 = 2180 , + KCaloryNeed_B10 = 2230 , + KCaloryNeed_B11 = 2300 , + KCaloryNeed_B12 = 2370 , + KCaloryNeed_B13 = 2440 , + KCaloryNeed_B14 = 2510 , + KCaloryNeed_B15 = 2600 , + KCaloryNeed_B16 = 2750 , + KCaloryNeed_B17 = 2800 , + KCaloryNeed_B18 = 2750 , + KCaloryNeed_B19 = 2600 , + KCaloryNeed_B20 = 2590 , + KCaloryNeed_B21 = 2583.33 , + KCaloryNeed_B22 = 2576.66 , + KCaloryNeed_B23 = 2569.99 , + KCaloryNeed_B24 = 2563.32 , + KCaloryNeed_B25 = 2556.65 , + KCaloryNeed_B26 = 2549.98 , + KCaloryNeed_B27 = 2543.31 , + KCaloryNeed_B28 = 2536.64 , + KCaloryNeed_B29 = 2529.97 , + KCaloryNeed_B30 = 2523.3 , + KCaloryNeed_B31 = 2516.63 , + KCaloryNeed_B32 = 2509.96 , + KCaloryNeed_B33 = 2503.29 , + KCaloryNeed_B34 = 2496.62 , + KCaloryNeed_B35 = 2489.95 , + KCaloryNeed_B36 = 2483.28 , + KCaloryNeed_B37 = 2476.61 , + KCaloryNeed_B38 = 2469.94 , + KCaloryNeed_B39 = 2463.27 , + KCaloryNeed_B40 = 2459.2 , + KCaloryNeed_B41 = 2449.93 , + KCaloryNeed_B42 = 2443.26 , + KCaloryNeed_B43 = 2436.59 , + KCaloryNeed_B44 = 2429.92 , + KCaloryNeed_B45 = 2423.25 , + KCaloryNeed_B46 = 2416.58 , + KCaloryNeed_B47 = 2409.91 , + KCaloryNeed_B48 = 2403.24 , + KCaloryNeed_B49 = 2396.57 , + KCaloryNeed_B50 = 2389.9 , + KCaloryNeed_B51 = 2383.23 , + KCaloryNeed_B52 = 2376.56 , + KCaloryNeed_B53 = 2369.89 , + KCaloryNeed_B54 = 2363.22 , + KCaloryNeed_B55 = 2356.55 , + KCaloryNeed_B56 = 2349.88 , + KCaloryNeed_B57 = 2343.21 , + KCaloryNeed_B58 = 2336.54 , + KCaloryNeed_B59 = 2329.87 , + KCaloryNeed_B60 = 2300 , + KCaloryNeed_B61 = 2285.13 , + KCaloryNeed_B62 = 2270.26 , + KCaloryNeed_B63 = 2255.39 , + KCaloryNeed_B64 = 2240.52 , + KCaloryNeed_B65 = 2225.65 , + KCaloryNeed_B66 = 2210.78 , + KCaloryNeed_B67 = 2195.91 , + KCaloryNeed_B68 = 2181.04 , + KCaloryNeed_B69 = 2166.17 , + KCaloryNeed_B70 = 2151.3 , + KCaloryNeed_B71 = 2136.43 , + KCaloryNeed_B72 = 2121.56 , + KCaloryNeed_B73 = 2106.69 , + KCaloryNeed_B74 = 2091.82 , + KCaloryNeed_B75 = 2076.95 , + KCaloryNeed_B76 = 2062.08 , + KCaloryNeed_B77 = 2047.21 , + KCaloryNeed_B78 = 2032.34 , + KCaloryNeed_B79 = 2017.47 , + KCaloryNeed_B80 = 2001.2 , + KCaloryNeed_B81 = 1987.73 , + KCaloryNeed_B82 = 1972.86 , + KCaloryNeed_B83 = 1957.99 , + KCaloryNeed_B84 = 1943.12 , + KCaloryNeed_B85 = 1928.25 , + KCaloryNeed_B86 = 1913.38 , + KCaloryNeed_B87 = 1898.51 , + KCaloryNeed_B88 = 1883.64 , + KCaloryNeed_B89 = 1868.77 , + KCaloryNeed_B90 = 1853.9 , + KCaloryNeed_B91 = 1839.03 , + KCaloryNeed_B92 = 1824.16 , + KCaloryNeed_B93 = 1809.29 , + KCaloryNeed_B94 = 1794.42 , + KCaloryNeed_B95 = 1779.55 , + KCaloryNeed_B96 = 1764.68 , + KCaloryNeed_B97 = 1749.81 , + KCaloryNeed_B98 = 1734.94 , + KCaloryNeed_B99 = 1720.07 , + KCaloryNeed_G0 = 780 , + KCaloryNeed_G1 = 1190 , + KCaloryNeed_G2 = 1330 , + KCaloryNeed_G3 = 1440 , + KCaloryNeed_G4 = 1540 , + KCaloryNeed_G5 = 1630 , + KCaloryNeed_G6 = 1680 , + KCaloryNeed_G7 = 1730 , + KCaloryNeed_G8 = 1780 , + KCaloryNeed_G9 = 1830 , + KCaloryNeed_G10 = 1890 , + KCaloryNeed_G11 = 1965 , + KCaloryNeed_G12 = 2040 , + KCaloryNeed_G13 = 2115 , + KCaloryNeed_G14 = 2190 , + KCaloryNeed_G15 = 2112 , + KCaloryNeed_G16 = 2122 , + KCaloryNeed_G17 = 2132 , + KCaloryNeed_G18 = 2122 , + KCaloryNeed_G19 = 2112 , + KCaloryNeed_G20 = 2087.5 , + KCaloryNeed_G21 = 2082.5 , + KCaloryNeed_G22 = 2077.5 , + KCaloryNeed_G23 = 2072.5 , + KCaloryNeed_G24 = 2067.5 , + KCaloryNeed_G25 = 2062.5 , + KCaloryNeed_G26 = 2057.5 , + KCaloryNeed_G27 = 2052.5 , + KCaloryNeed_G28 = 2047.5 , + KCaloryNeed_G29 = 2042.5 , + KCaloryNeed_G30 = 2037.5 , + KCaloryNeed_G31 = 2032.5 , + KCaloryNeed_G32 = 2027.5 , + KCaloryNeed_G33 = 2022.5 , + KCaloryNeed_G34 = 2017.5 , + KCaloryNeed_G35 = 2012.5 , + KCaloryNeed_G36 = 2007.5 , + KCaloryNeed_G37 = 2002.5 , + KCaloryNeed_G38 = 1997.5 , + KCaloryNeed_G39 = 1992.5 , + KCaloryNeed_G40 = 1987.5 , + KCaloryNeed_G41 = 1982.5 , + KCaloryNeed_G42 = 1977.5 , + KCaloryNeed_G43 = 1972.5 , + KCaloryNeed_G44 = 1967.5 , + KCaloryNeed_G45 = 1962.5 , + KCaloryNeed_G46 = 1957.5 , + KCaloryNeed_G47 = 1952.5 , + KCaloryNeed_G48 = 1947.5 , + KCaloryNeed_G49 = 1942.5 , + KCaloryNeed_G50 = 1937.5 , + KCaloryNeed_G51 = 1932.5 , + KCaloryNeed_G52 = 1927.5 , + KCaloryNeed_G53 = 1922.5 , + KCaloryNeed_G54 = 1917.5 , + KCaloryNeed_G55 = 1912.5 , + KCaloryNeed_G56 = 1907.5 , + KCaloryNeed_G57 = 1902.5 , + KCaloryNeed_G58 = 1897.5 , + KCaloryNeed_G59 = 1892.5 , + KCaloryNeed_G60 = 1877.5 , + KCaloryNeed_G61 = 1872.5 , + KCaloryNeed_G62 = 1867.5 , + KCaloryNeed_G63 = 1862.5 , + KCaloryNeed_G64 = 1857.5 , + KCaloryNeed_G65 = 1852.5 , + KCaloryNeed_G66 = 1847.5 , + KCaloryNeed_G67 = 1842.5 , + KCaloryNeed_G68 = 1837.5 , + KCaloryNeed_G69 = 1832.5 , + KCaloryNeed_G70 = 1827.5 , + KCaloryNeed_G71 = 1822.5 , + KCaloryNeed_G72 = 1817.5 , + KCaloryNeed_G73 = 1812.5 , + KCaloryNeed_G74 = 1807.5 , + KCaloryNeed_G75 = 1802.5 , + KCaloryNeed_G76 = 1797.5 , + KCaloryNeed_G77 = 1792.5 , + KCaloryNeed_G78 = 1787.5 , + KCaloryNeed_G79 = 1782.5 , + KCaloryNeed_G80 = 1777.5 , + KCaloryNeed_G81 = 1772.5 , + KCaloryNeed_G82 = 1767.5 , + KCaloryNeed_G83 = 1762.5 , + KCaloryNeed_G84 = 1757.5 , + KCaloryNeed_G85 = 1752.5 , + KCaloryNeed_G86 = 1747.5 , + KCaloryNeed_G87 = 1742.5 , + KCaloryNeed_G88 = 1737.5 , + KCaloryNeed_G89 = 1732.5 , + KCaloryNeed_G90 = 1727.5 , + KCaloryNeed_G91 = 1722.5 , + KCaloryNeed_G92 = 1717.5 , + KCaloryNeed_G93 = 1712.5 , + KCaloryNeed_G94 = 1707.5 , + KCaloryNeed_G95 = 1702.5 , + KCaloryNeed_G96 = 1697.5 , + KCaloryNeed_G97 = 1692.5 , + KCaloryNeed_G98 = 1687.5 , + KCaloryNeed_G99 = 1682.5 , + KCaloryNeed_A_B0 = 705 , + KCaloryNeed_A_B1 = 948 , + KCaloryNeed_A_B2 = 1070 , + KCaloryNeed_A_B3 = 1170 , + KCaloryNeed_A_B4 = 1270 , + KCaloryNeed_A_B5 = 1450 , + KCaloryNeed_A_B6 = 1600 , + KCaloryNeed_A_B7 = 1730 , + KCaloryNeed_A_B8 = 1860 , + KCaloryNeed_A_B9 = 1990 , + KCaloryNeed_A_B10 = 2120 , + KCaloryNeed_A_B11 = 2250 , + KCaloryNeed_A_B12 = 2600 , + KCaloryNeed_A_B13 = 2800 , + KCaloryNeed_A_B14 = 3000 , + KCaloryNeed_A_B15 = 3200 , + KCaloryNeed_A_B16 = 3300 , + KCaloryNeed_A_B17 = 3200 , + KCaloryNeed_A_B18 = 3100 , + KCaloryNeed_A_B19 = 3087 , + KCaloryNeed_A_B20 = 3074 , + KCaloryNeed_A_B21 = 3061 , + KCaloryNeed_A_B22 = 3048 , + KCaloryNeed_A_B23 = 3035 , + KCaloryNeed_A_B24 = 3022 , + KCaloryNeed_A_B25 = 3009 , + KCaloryNeed_A_B26 = 2996 , + KCaloryNeed_A_B27 = 2983 , + KCaloryNeed_A_B28 = 2970 , + KCaloryNeed_A_B29 = 2957 , + KCaloryNeed_A_B30 = 2950 , + KCaloryNeed_A_B31 = 2947 , + KCaloryNeed_A_B32 = 2944 , + KCaloryNeed_A_B33 = 2941 , + KCaloryNeed_A_B34 = 2938 , + KCaloryNeed_A_B35 = 2935 , + KCaloryNeed_A_B36 = 2932 , + KCaloryNeed_A_B37 = 2929 , + KCaloryNeed_A_B38 = 2926 , + KCaloryNeed_A_B39 = 2923 , + KCaloryNeed_A_B40 = 2920 , + KCaloryNeed_A_B41 = 2917 , + KCaloryNeed_A_B42 = 2914 , + KCaloryNeed_A_B43 = 2911 , + KCaloryNeed_A_B44 = 2908 , + KCaloryNeed_A_B45 = 2905 , + KCaloryNeed_A_B46 = 2902 , + KCaloryNeed_A_B47 = 2899 , + KCaloryNeed_A_B48 = 2896 , + KCaloryNeed_A_B49 = 2893 , + KCaloryNeed_A_B50 = 2890 , + KCaloryNeed_A_B51 = 2887 , + KCaloryNeed_A_B52 = 2884 , + KCaloryNeed_A_B53 = 2881 , + KCaloryNeed_A_B54 = 2878 , + KCaloryNeed_A_B55 = 2875 , + KCaloryNeed_A_B56 = 2872 , + KCaloryNeed_A_B57 = 2869 , + KCaloryNeed_A_B58 = 2866 , + KCaloryNeed_A_B59 = 2863 , + KCaloryNeed_A_B60 = 2800 , + KCaloryNeed_A_B61 = 2777 , + KCaloryNeed_A_B62 = 2754 , + KCaloryNeed_A_B63 = 2731 , + KCaloryNeed_A_B64 = 2708 , + KCaloryNeed_A_B65 = 2685 , + KCaloryNeed_A_B66 = 2662 , + KCaloryNeed_A_B67 = 2639 , + KCaloryNeed_A_B68 = 2616 , + KCaloryNeed_A_B69 = 2593 , + KCaloryNeed_A_B70 = 2570 , + KCaloryNeed_A_B71 = 2547 , + KCaloryNeed_A_B72 = 2524 , + KCaloryNeed_A_B73 = 2501 , + KCaloryNeed_A_B74 = 2478 , + KCaloryNeed_A_B75 = 2455 , + KCaloryNeed_A_B76 = 2432 , + KCaloryNeed_A_B77 = 2409 , + KCaloryNeed_A_B78 = 2386 , + KCaloryNeed_A_B79 = 2363 , + KCaloryNeed_A_B80 = 2340 , + KCaloryNeed_A_B81 = 2317 , + KCaloryNeed_A_B82 = 2294 , + KCaloryNeed_A_B83 = 2271 , + KCaloryNeed_A_B84 = 2248 , + KCaloryNeed_A_B85 = 2225 , + KCaloryNeed_A_B86 = 2202 , + KCaloryNeed_A_B87 = 2179 , + KCaloryNeed_A_B88 = 2156 , + KCaloryNeed_A_B89 = 2133 , + KCaloryNeed_A_B90 = 2110 , + KCaloryNeed_A_B91 = 2087 , + KCaloryNeed_A_B92 = 2064 , + KCaloryNeed_A_B93 = 2041 , + KCaloryNeed_A_B94 = 2018 , + KCaloryNeed_A_B95 = 1995 , + KCaloryNeed_A_B96 = 1972 , + KCaloryNeed_A_B97 = 1949 , + KCaloryNeed_A_B98 = 1926 , + KCaloryNeed_A_B99 = 1903 , + KCaloryNeed_A_G0 = 675 , + KCaloryNeed_A_G1 = 908 , + KCaloryNeed_A_G2 = 1034 , + KCaloryNeed_A_G3 = 1134 , + KCaloryNeed_A_G4 = 1234 , + KCaloryNeed_A_G5 = 1370 , + KCaloryNeed_A_G6 = 1500 , + KCaloryNeed_A_G7 = 1650 , + KCaloryNeed_A_G8 = 1800 , + KCaloryNeed_A_G9 = 1900 , + KCaloryNeed_A_G10 = 2050 , + KCaloryNeed_A_G11 = 2250 , + KCaloryNeed_A_G12 = 2450 , + KCaloryNeed_A_G13 = 2700 , + KCaloryNeed_A_G14 = 2900 , + KCaloryNeed_A_G15 = 2900 , + KCaloryNeed_A_G16 = 2750 , + KCaloryNeed_A_G17 = 2700 , + KCaloryNeed_A_G18 = 2695 , + KCaloryNeed_A_G19 = 2690 , + KCaloryNeed_A_G20 = 2685 , + KCaloryNeed_A_G21 = 2680 , + KCaloryNeed_A_G22 = 2675 , + KCaloryNeed_A_G23 = 2670 , + KCaloryNeed_A_G24 = 2665 , + KCaloryNeed_A_G25 = 2660 , + KCaloryNeed_A_G26 = 2655 , + KCaloryNeed_A_G27 = 2650 , + KCaloryNeed_A_G28 = 2645 , + KCaloryNeed_A_G29 = 2640 , + KCaloryNeed_A_G30 = 2630 , + KCaloryNeed_A_G31 = 2625 , + KCaloryNeed_A_G32 = 2620 , + KCaloryNeed_A_G33 = 2615 , + KCaloryNeed_A_G34 = 2610 , + KCaloryNeed_A_G35 = 2605 , + KCaloryNeed_A_G36 = 2600 , + KCaloryNeed_A_G37 = 2595 , + KCaloryNeed_A_G38 = 2590 , + KCaloryNeed_A_G39 = 2585 , + KCaloryNeed_A_G40 = 2580 , + KCaloryNeed_A_G41 = 2575 , + KCaloryNeed_A_G42 = 2570 , + KCaloryNeed_A_G43 = 2565 , + KCaloryNeed_A_G44 = 2560 , + KCaloryNeed_A_G45 = 2555 , + KCaloryNeed_A_G46 = 2550 , + KCaloryNeed_A_G47 = 2545 , + KCaloryNeed_A_G48 = 2540 , + KCaloryNeed_A_G49 = 2535 , + KCaloryNeed_A_G50 = 2530 , + KCaloryNeed_A_G51 = 2525 , + KCaloryNeed_A_G52 = 2520 , + KCaloryNeed_A_G53 = 2515 , + KCaloryNeed_A_G54 = 2510 , + KCaloryNeed_A_G55 = 2505 , + KCaloryNeed_A_G56 = 2500 , + KCaloryNeed_A_G57 = 2495 , + KCaloryNeed_A_G58 = 2490 , + KCaloryNeed_A_G59 = 2485 , + KCaloryNeed_A_G60 = 2400 , + KCaloryNeed_A_G61 = 2389 , + KCaloryNeed_A_G62 = 2378 , + KCaloryNeed_A_G63 = 2367 , + KCaloryNeed_A_G64 = 2356 , + KCaloryNeed_A_G65 = 2345 , + KCaloryNeed_A_G66 = 2334 , + KCaloryNeed_A_G67 = 2323 , + KCaloryNeed_A_G68 = 2312 , + KCaloryNeed_A_G69 = 2301 , + KCaloryNeed_A_G70 = 2290 , + KCaloryNeed_A_G71 = 2279 , + KCaloryNeed_A_G72 = 2268 , + KCaloryNeed_A_G73 = 2257 , + KCaloryNeed_A_G74 = 2246 , + KCaloryNeed_A_G75 = 2235 , + KCaloryNeed_A_G76 = 2224 , + KCaloryNeed_A_G77 = 2213 , + KCaloryNeed_A_G78 = 2202 , + KCaloryNeed_A_G79 = 2191 , + KCaloryNeed_A_G80 = 2180 , + KCaloryNeed_A_G81 = 2169 , + KCaloryNeed_A_G82 = 2158 , + KCaloryNeed_A_G83 = 2147 , + KCaloryNeed_A_G84 = 2136 , + KCaloryNeed_A_G85 = 2125 , + KCaloryNeed_A_G86 = 2114 , + KCaloryNeed_A_G87 = 2103 , + KCaloryNeed_A_G88 = 2092 , + KCaloryNeed_A_G89 = 2081 , + KCaloryNeed_A_G90 = 2070 , + KCaloryNeed_A_G91 = 2059 , + KCaloryNeed_A_G92 = 2048 , + KCaloryNeed_A_G93 = 2037 , + KCaloryNeed_A_G94 = 2026 , + KCaloryNeed_A_G95 = 2015 , + KCaloryNeed_A_G96 = 2004 , + KCaloryNeed_A_G97 = 1993 , + KCaloryNeed_A_G98 = 1982 , + KCaloryNeed_A_G99 = 1971 , + #KCaloryNeed_B1 = 850, + #KCaloryNeed_G1 = 780, + #KCaloryNeed_B2 = 1250, + #KCaloryNeed_G2 = 1190, + #KCaloryNeed_B3 = 1430, + #KCaloryNeed_G3 = 1330, + #KCaloryNeed_B4 = 1560, + #KCaloryNeed_G4 = 1440, + #KCaloryNeed_B5 = 1690, + #KCaloryNeed_G5 = 1540, + #KCaloryNeed_B6 = 1980, + #KCaloryNeed_G6 = 1730, + #KCaloryNeed_B7 = 2370, + #KCaloryNeed_G7 = 2040, + #KCaloryNeed_B8 = 2700, + #KCaloryNeed_G8 = 2120, + #KCaloryNeed_B9 = 2460, + #KCaloryNeed_G9 = 1990, + #KCaloryNeed_B10 = 2010, + #KCaloryNeed_G10 = 1780, + #KCaloryNeed_A_B1 = 705, + #KCaloryNeed_A_G1 = 643, + #KCaloryNeed_A_B2 = 948, + #KCaloryNeed_A_G2 = 865, + #KCaloryNeed_A_B3 = 1120, + #KCaloryNeed_A_G3 = 1047, + #KCaloryNeed_A_B4 = 1360, + #KCaloryNeed_A_G4 = 1242, + #KCaloryNeed_A_B5 = 1927, + #KCaloryNeed_A_G5 = 1782, + #KCaloryNeed_A_B6 = 3036, + #KCaloryNeed_A_G6 = 2434, + #KCaloryNeed_A_B7 = 3029, + #KCaloryNeed_A_G7 = 2300, + #KCaloryNeed_A_B8 = 2900, + #KCaloryNeed_A_G8 = 2200, + #KCaloryNeed_A_B9 = 2350, + #KCaloryNeed_A_G9 = 2000, + KCaloryNeed_lactating = 500, + InitialPoorPercentile= 1:20, + SectorsNumbers = 1:5, + SectorsNames = c("Public","Cooperative","Private","BussP","Agri"), + D80LinkSource ="../Data/D80Link.accdb", + D80LinkDest =D80LinkDest +) +write(as.yaml(Settings),file = "Settings.yaml") \ No newline at end of file diff --git a/R/Archive/November 2019/test_Mollanoori.R b/R/Archive/November 2019/test_Mollanoori.R new file mode 100644 index 00000000..fd0c79e5 --- /dev/null +++ b/R/Archive/November 2019/test_Mollanoori.R @@ -0,0 +1,79 @@ +#learning R +rm(list=ls()) + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) +library(spatstat) + +year <- 96 + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +TD <-MD +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + +Total <- merge(TD,SMD[,.(HHID,Decile,Percentile)],by="HHID") +Total <- merge(Total, MD[,.(HHID,Bundle_Value, PEngel,Engel, + FPLine, PovertyLine,FinalFoodPoor, + FinalPoor)],by="HHID") +Total[,weighted.mean(FinalPoor,Weight*Size), by=.(ProvinceCode)] + +Total <- Total[,Diet:=ifelse(FinalFoodPoor==1 & FinalPoor==0,1,0)] +Total[,weighted.mean(Diet,Weight*Size), by=.(Region)] +Total[NewArea_Name=="Sh_Tehran",weighted.mean(Diet,Weight*Size), by=.(Region)] + +TotalD <- Total[ Diet==1, + .(.N, Engle=weighted.mean(FoodExpenditure/Total_Exp_Month, Weight), + FPLine=mean(FPLine)), by=.(Region, NewArea_Name)] +TotalS <- Total[ FinalPoor==1, + .(.N, Engle_Poor=weighted.mean(FoodExpenditure/Total_Exp_Month, Weight), + FPLine=mean(FPLine)), by=.(Region, NewArea_Name)] + +TotalD <- TotalD[,sample1:=N] +TotalD[,N:=NULL] + +TotalT <- merge(TotalD,TotalS[,.(Region, NewArea_Name,Engle_Poor,N)]) +TotalT[,NewArea_Name:=NULL] +TotalT <- TotalT[,lapply(.SD,sum),by=Region] + + +Total <-Total[,FoodExp_per:=FoodExpenditure/EqSizeCalory] +Total2 <- Total[FoodExp_per>2000000] +#for(col in C("HStudent")) Total2[is.na(get(col)),(col):=0] +Total2[,weighted.mean(FoodExp_per,Weight), by=.(Region, NewArea_Name)][order(V1)] +Total2 <- Total2[,FoodExp_per_ostan:=weighted.mean(FoodExp_per,Weight), by=.(Region, NewArea_Name)] + +Total2 <- Total2[Size>3,Behdasht1:=weighted.mean(Behdasht_Exp,Weight),by=.(Size)] +x<- Total2[,.(HHID,Size,Behdasht1,Behdasht_Exp,Weight)] + + + +x[,weighted.mean(Behdasht_Exp,Weight,na.rm = TRUE)] + + +for (col in c("Behdasht1")) x[is.na(get(col)), (col):= 0] + + +set1 <- c("FoodExpenditure","Behdasht_Exp","Amusement_Exp") +Total2[,Exp2:=Reduce(`+`,.SD),.SDcols=set1] + + + +Total3 <- Total2[,.(Region, NewArea_Name,FoodExp_per, + FoodExpenditure,Behdasht_Exp,Amusement_Exp, Weight)] + +Total4 <- Total3[,lapply(.SD, sum), by=.(Region,NewArea_Name)] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Farhangis2.rda")) + +Total2 <- merge(Total2, FarhangiData, all.x=TRUE) +for (col in c("Code","FarhangiExpenditure")) Total2[is.na(get(col)), (col):= 0] + +cat(Total2[,weighted.mean(FoodKCaloriesHH_Per,Weight*Size)],"\t", + Total2[,weighted.mean(FoodProtein_Per,Weight*Size)],"\t", + Total2[,weighted.mean(FoodExp_per,Weight*Size)],"\t", + Total2[,weighted.mean(Total_Exp_Month_Per_nondurable,Weight*Size)]) diff --git a/R/Archive/October 2020/Energy groups.R b/R/Archive/October 2020/Energy groups.R new file mode 100644 index 00000000..4c7c3101 --- /dev/null +++ b/R/Archive/October 2020/Energy groups.R @@ -0,0 +1,259 @@ +# 141-Groups Expenditures.R +# Builds the Groups Expenditures data.table for households +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ NonFood Expenditures =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + +Table1<-data.table(Year=NA_integer_,Sookht_Share=NA_real_,Ab_Share=NA_real_,Bargh_Share=NA_real_, + Gaz_Share=NA_real_,Energy_Share=NA_real_)[0] + +Table2<-data.table(Year=NA_integer_,Sookht_Share=NA_real_,Ab_Share=NA_real_,Bargh_Share=NA_real_, + Gaz_Share=NA_real_,Energy_Share=NA_real_,Decile=NA_real_)[0] + +Table3<-data.table(Year=NA_integer_,Sookht_Share=NA_real_,Ab_Share=NA_real_,Bargh_Share=NA_real_, + Gaz_Share=NA_real_,Energy_Share=NA_real_,ProvinceCode=NA_real_)[0] + + +cat("\n\n================ Energy =====================================\n") + +EnergyTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Energy)) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- EnergyTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Energy_Exp")) + TC <- TC[,pcols,with=FALSE] + + if(year %in% 63:82){ + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + } + + if(year %in% 83:98){ + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + TC[,Energy_Exp:=as.numeric(Energy_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + EnergyData <- TC[,lapply(.SD,sum),by=HHID] + save(EnergyData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Energys.rda")) + + + +cat("\n\n================ Bargh =====================================\n") + +BarghTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Bargh)) + + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- BarghTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Bargh_Exp")) + TC <- TC[,pcols,with=FALSE] + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + if(year %in% 84:94){ + TC[,Bargh_Exp:=as.numeric(Bargh_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + BarghData <- TC[,lapply(.SD,sum),by=HHID] + save(BarghData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Barghs.rda")) + + + +cat("\n\n================ Sookht =====================================\n") + +SookhtTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Sookht)) + + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- SookhtTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Sookht_Exp")) + TC <- TC[,pcols,with=FALSE] + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + if(year %in% 84:94){ + TC[,Sookht_Exp:=as.numeric(Sookht_Exp)] + } + TC[,Code:=NULL] + TC[is.na(TC)] <- 0 + SookhtData <- TC[,lapply(.SD,sum),by=HHID] + save(SookhtData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Sookhts.rda")) + + + +cat("\n\n================ Ab =====================================\n") + +AbTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Ab)) + + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + mt <- AbTables[Year==year] + tab <- mt$Table + if(is.na(tab)) + next + UTM <- Tables[[paste0("U",year,tab)]] + RTM <- Tables[[paste0("R",year,tab)]] + TM <- rbind(UTM,RTM) + for(n in names(TM)){ + x <- which(mt==n) + if(length(x)>0) + setnames(TM,n,names(mt)[x]) + } + pcols <- intersect(names(TM),c("HHID","Code","Ab_Exp")) + TM <- TM[,pcols,with=FALSE] + if (year<83){ + TM <- TM[Code %in% c(32110,32255)] + } else { + TM <- TM[Code %in% mt$StartCode:mt$EndCode] + } + + if(year %in% 84:96){ + TM[,Ab_Exp:=as.numeric(Ab_Exp)] + } + TM <- TM[Code %in% mt$StartCode:mt$EndCode] + TM[,Code:=NULL] + TM[is.na(TM)] <- 0 + AbData <- TM[,lapply(.SD,sum),by=HHID] + save(AbData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Abs.rda")) + + +cat("\n\n================ Gaz =====================================\n") + +GazTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Gaz)) + + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + mt <- GazTables[Year==year] + tab <- mt$Table + if(is.na(tab)) + next + UTM <- Tables[[paste0("U",year,tab)]] + RTM <- Tables[[paste0("R",year,tab)]] + TM <- rbind(UTM,RTM) + for(n in names(TM)){ + x <- which(mt==n) + if(length(x)>0) + setnames(TM,n,names(mt)[x]) + } + pcols <- intersect(names(TM),c("HHID","Code","Gaz_Exp")) + TM <- TM[,pcols,with=FALSE] + TM <- TM[Code %in% mt$StartCode:mt$EndCode] + if(year %in% 84:96){ + TM[,Gaz_Exp:=as.numeric(Gaz_Exp)] + } + TM <- TM[Code %in% mt$StartCode:mt$EndCode] + TM[,Code:=NULL] + TM[is.na(TM)] <- 0 + GazData <- TM[,lapply(.SD,sum),by=HHID] + save(GazData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Gazs.rda")) + + + + + +Data<-merge(EnergyData,SookhtData,all.x=TRUE) +Data<-merge(Data,AbData,all.x=TRUE) +Data<-merge(Data,GazData,all.x=TRUE) +Data<-merge(Data,BarghData,all.x=TRUE) +Data[is.na(Data)]<-0 + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoors.rda")) +MD<-merge(MD,Data,all.x=TRUE,by="HHID") +MD[is.na(MD)]<-0 + +Final<-MD[,.(HHID,Weight,Energy_Exp,Sookht_Exp,Ab_Exp,Bargh_Exp, + Gaz_Exp,Total_Exp_Month,Decile,ProvinceCode)] + +Final[,weighted.mean(Sookht_Exp/Total_Exp_Month,Weight)] +Final[,weighted.mean(Ab_Exp/Total_Exp_Month,Weight)] +Final[,weighted.mean(Bargh_Exp/Total_Exp_Month,Weight)] + +Final[as.numeric(Decile)==1,weighted.mean(Energy_Exp/Total_Exp_Month,Weight)] +Final[as.numeric(Decile)==10,weighted.mean(Energy_Exp/Total_Exp_Month,Weight)] + +T1<-Final[,.(Sookht_Share=weighted.mean(Sookht_Exp/Total_Exp_Month,Weight), + Ab_Share=weighted.mean(Ab_Exp/Total_Exp_Month,Weight), + Gaz_Share=weighted.mean(Gaz_Exp/Total_Exp_Month,Weight), + Energy_Share=weighted.mean(Energy_Exp/Total_Exp_Month,Weight), + Bargh_Share=weighted.mean(Bargh_Exp/Total_Exp_Month,Weight))] +T1[,Year:=year] +Table1 <- rbind(Table1,T1) + +Final[,weighted.mean(Bargh_Exp/Total_Exp_Month,Weight),by=Decile][order(Decile)] +Final[,weighted.mean(Gaz_Exp/Total_Exp_Month,Weight),by=Decile][order(Decile)] + +T2<-Final[,.(Bargh_Share=weighted.mean(Bargh_Exp/Total_Exp_Month,Weight), + Gaz_Share=weighted.mean(Gaz_Exp/Total_Exp_Month,Weight), + Ab_Share=weighted.mean(Ab_Exp/Total_Exp_Month,Weight), + Sookht_Share=weighted.mean(Sookht_Exp/Total_Exp_Month,Weight), + Energy_Share=weighted.mean(Energy_Exp/Total_Exp_Month,Weight)),by=Decile] + + +T2[,Year:=year] +Table2 <- rbind(Table2,T2) +write.csv(Table2,"Table2.csv") + +T3<-Final[,.(Bargh_Share=weighted.mean(Bargh_Exp/Total_Exp_Month,Weight), + Gaz_Share=weighted.mean(Gaz_Exp/Total_Exp_Month,Weight), + Ab_Share=weighted.mean(Ab_Exp/Total_Exp_Month,Weight), + Sookht_Share=weighted.mean(Sookht_Exp/Total_Exp_Month,Weight), + Energy_Share=weighted.mean(Energy_Exp/Total_Exp_Month,Weight)),by=ProvinceCode] + + +T3[,Year:=year] +Table3 <- rbind(Table3,T3) +write.csv(Table3,"Table3.csv") +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/October 2020/FinanceExp.R b/R/Archive/October 2020/FinanceExp.R new file mode 100644 index 00000000..e9cfbc7f --- /dev/null +++ b/R/Archive/October 2020/FinanceExp.R @@ -0,0 +1,74 @@ + +# +# Copyright © 2017: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + + +cat("\n\n================ HHFinance =====================================\n") +FinanceTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Finance)) + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ct <- FinanceTables[Year==year] + tab <- ct$Table + if(is.na(tab)) + next + UTC <- Tables[[paste0("U",year,tab)]] + RTC <- Tables[[paste0("R",year,tab)]] + TC <- rbind(UTC,RTC) + for(n in names(TC)){ + x <- which(ct==n) + if(length(x)>0) + setnames(TC,n,names(ct)[x]) + } + pcols <- intersect(names(TC),c("HHID","Code","Vam","BuyingMethod","Finance_Exp","Finance_Sale")) + TC <- TC[,pcols,with=FALSE] + TC <- TC[Code %in% ct$StartCode:ct$EndCode] + if(year %in% 84:96){ + TC[,Finance_Exp:=as.numeric(Finance_Exp)] + TC[,Finance_Sale:=as.numeric(Finance_Sale)] + } + TC<-TC[BuyingMethod==1] + TC$Finance_Exp<-TC$Finance_Exp/12 + TC$Finance_Sale<-TC$Finance_Sale/12 + TC[,Code:=NULL] + TC[,BuyingMethod:=NULL] + TC[is.na(TC)] <- 0 + FinanceData <- TC[,lapply(.SD,sum),by=HHID] + save(FinanceData, file = paste0(Settings$HEISProcessedPath,"Y",year,"Finances.rda")) + load(file = paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoors.rda")) + + MD<-merge(MD,FinanceData,by="HHID",all.x=TRUE) + MD[is.na(MD)] <- 0 + + MD[,Decile_Pop:=sum(Weight),by=Decile] + MD[Finance_Exp>0,having_vam_Pop:=sum(Weight),by=Decile] + MD[,having_vam:=ifelse(Finance_Exp>0,1,0)] + MD[,weighted.mean(having_vam,Weight),by=Decile][order(Decile)] + MD[Finance_Exp>0,weighted.mean(Finance_Exp*12/Total_Exp_Month,Weight),by=Decile][order(Decile)] + + MD[,Y:=sum(Weight*Total_Exp_Month)] + MD[as.numeric(Percentile)>97,X:=sum(Weight*Total_Exp_Month)] + MD[,a:=X/Y] + +} + +a1<-MD[having_vam==1,sum(Weight),by="Decile"][order(Decile)] + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/October 2020/Map.R b/R/Archive/October 2020/Map.R new file mode 100644 index 00000000..495e51f6 --- /dev/null +++ b/R/Archive/October 2020/Map.R @@ -0,0 +1,52 @@ +#Engle's Map +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 +rm(list=ls()) + +library(data.table) +library(readxl) +library(rworldmap) +library(rgdal) + + +Engle <- data.table(read_excel("Engle.xlsx","Province")) # Data to be plotted, see the excell file + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(Engle,nameMap="ProvMap", # Joining the data to map + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) +MapData2<-MapData + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +#Urban Areas +mapUrban <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "Head_Count_Ratio", + colourPalette = "heat", + mapTitle = paste0("Engle Rate in Urban Areas"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapUrban + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) + + diff --git a/R/Archive/October 2020/Poverty Indices2.R b/R/Archive/October 2020/Poverty Indices2.R new file mode 100644 index 00000000..cdaf69ee --- /dev/null +++ b/R/Archive/October 2020/Poverty Indices2.R @@ -0,0 +1,793 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Indices2 =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) +library(ggplot2) + +X1 <- data.table(Year=NA_integer_,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +X2 <- data.table(Year=NA_integer_,Region=NA_character_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + + +X3 <- data.table(Year=NA_integer_,Decile=NA_integer_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +Province<-data.table(Year=NA_integer_,ProvinceCode=NA_integer_,Total_Exp_Month_Per=NA_real_) + +Y1 <- data.table(Year=NA_integer_,H=NA_real_) + +Y2 <- data.table(Year=NA_integer_,H=NA_real_,Region=NA_character_) + +Y3 <- data.table(Year=NA_integer_,H=NA_real_,ProvinceCode=NA_integer_) + +Z1 <- data.table(Year=NA_integer_,A=NA_real_) + +Z2 <- data.table(Year=NA_integer_,A=NA_real_,Region=NA_character_) + +Z3 <- data.table(Year=NA_integer_,A=NA_real_,ProvinceCode=NA_integer_) + +Q1 <- data.table(Year=NA_integer_,MPI=NA_real_) + +Q2 <- data.table(Year=NA_integer_,MPI=NA_real_,Region=NA_character_) + +Q3 <- data.table(Year=NA_integer_,MPI=NA_real_,ProvinceCode=NA_integer_) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy,G125,G1253)],by="HHID") + MD[,Decile:=NULL] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + if (year==98){ + names(Deciles)<-c("HHID","Decile","Percentile") + } + + MD<-merge(MD,Deciles,by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + P1<-P1[Age<=16 & Age>=6,.(HHID,Age,Literate,Student)] + P1<-P1[Literate==TRUE | Literate==FALSE] + P1<-P1[,Lit:=ifelse(Literate==FALSE | Student==FALSE,100,1)] + P<-P1[,lapply(.SD,sum),by="HHID"] + P<-P[,Knowledge:=ifelse(Lit>=100,0,1)] + MD<-merge(MD,P[,.(HHID,Knowledge)],all.x = TRUE) + + + + MD[,Low_Calorie:=ifelse(FoodKCaloriesHH_Per<2100,1,0)] + MD[,Low_Protein:=ifelse(FoodProtein_Per<60,1,0)] + MD[,No_Insurance:=ifelse(G1253==0,1,0)] + MD[,House_High_Share:=ifelse(((G041+G042)/All>0.3 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Urban") | + ((G041+G042)/All>0.2 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Rural"),1,0)] + if (year==90){ + MD[,phone:=ifelse(is.na(phone),"True","False")] + MD[,internet:=ifelse(is.na(internet),"True","False")] + } + + MD[,Tech_low:=ifelse((phone=="False" & cellphone=="False" & + computer=="False") | + (phone=="False" & cellphone=="False" & + internet=="False") | + (phone=="False" & + computer=="False" & internet=="False") | + ( cellphone=="False" & + computer=="False" & internet=="False"),1,0)] + MD[,Yakhchal:=ifelse(refrigerator=="True" | freezer=="True" | + frez_refrig=="True","True","False")] + MD[,Equip_low:=ifelse((Yakhchal=="False" & washer=="False" & + oven=="False") | + (Yakhchal=="False" & washer=="False" & + tvcr=="False") | + (Yakhchal=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & oven=="False") | + ( washer=="False" & Yakhchal=="False") | + ( washer=="False" & tvcr=="False") | + ( tvcr=="False" & oven=="False") | + ( tvcr=="False" & Yakhchal=="False") | + ( Yakhchal=="False" & oven=="False") ,1,0)] + + A4<-MD[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE)),by=ProvinceCode] + + A1<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE))] + + A2<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Region] + + + A3<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Decile] + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + A3[,Year:=year] + X3 <- rbind(X3,A3) + + A4[,Year:=year] + Province <- rbind(Province,A4) + + MD[,Illiterte:=ifelse(HLiterate==FALSE,1,0)] + MD[,No_knowledge:=ifelse(Knowledge==1 | is.na(Knowledge),0,1)] + MD[,High_Energy_Share:=ifelse((G044+G045)/All >0.07 ,1,0)] + MD[,No_electricity:=ifelse(electricity=="False" ,1,0)] + MD[,No_cookefuel:=ifelse(cookfuel!="pipedgas",1,0)] + MD[,No_pipewater:=ifelse(pipewater=="False",1,0)] + MD[,Small_House:=ifelse((area/Size)<16,1,0)] + MD[,No_Skeleton:=1-ifelse(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone",1,0)] + MD[,No_bathroom:=ifelse(bathroom=="False",1,0)] + MD[,No_ego:=ifelse(ego=="False",1,0)] + MD[,No_car:=ifelse(car=="False",1,0)] + + + W_Edu1<-0.1 + W_Edu2<-0.1 + W_Energy1<-1/15 + W_Energy2<-1/15 + W_Energy3<-1/15 + W_Health1<-1/20 + W_Health2<-1/20 + W_Health3<-1/20 + W_Health4<-1/20 + W_House1<-1/20 + W_House2<-1/20 + W_House3<-1/20 + W_House4<-1/20 + W_Equip1<-0 + W_Equip2<-1/15 + W_Equip3<-1/15 + W_Equip4<-1/15 + + MD[,Poverty_Score:=W_Edu1*Illiterte+W_Edu2*No_knowledge+ + W_Energy1*High_Energy_Share+W_Energy2*No_electricity+ + W_Energy3*No_cookefuel+ + W_Health1*Low_Calorie+W_Health2*Low_Protein+ + W_Health3*No_Insurance+W_Health4*No_pipewater+ + W_House1*Small_House+W_House2*House_High_Share+ + W_House3*No_Skeleton+W_House4*No_bathroom+ + W_Equip1*No_ego+W_Equip2*No_car+ + W_Equip3*Equip_low+W_Equip4*Tech_low] + + z1<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight))] + + z2<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Region] + + z3<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Decile] + + z4<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=ProvinceCode] + + + MD[,FinalPoor:=ifelse(Poverty_Score>0.2,1,0)] + MD[,Poverty_Score_Revised:=ifelse(Poverty_Score>0.2,Poverty_Score,0)] + B1<-MD[,.(H=weighted.mean(FinalPoor,Weight))] + B2<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=Region] + B3<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=ProvinceCode] + MD[,weighted.mean(FinalPoor,Weight),by=Decile] + + cat(MD[,weighted.mean(FinalPoor,Weight)],"\n") + + B1[,Year:=year] + Y1 <- rbind(Y1,B1) + + B2[,Year:=year] + Y2 <- rbind(Y2,B2) + + B3[,Year:=year] + Y3 <- rbind(Y3,B3) + #write.csv(Y3,file = "Y3.csv") + + C1<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor))] + C2<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=Region] + C3<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=ProvinceCode] + + C1[,Year:=year] + Z1 <- rbind(Z1,C1) + + C2[,Year:=year] + Z2 <- rbind(Z2,C2) + + C3[,Year:=year] + Z3 <- rbind(Z3,C3) + + D1<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor)))] + D2<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=Region] + D3<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=ProvinceCode] + + D1[,Year:=year] + Q1 <- rbind(Q1,D1) + + D2[,Year:=year] + Q2 <- rbind(Q2,D2) + + D3[,Year:=year] + Q3 <- rbind(Q3,D3) + +} + + + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) +D1<-P1[,.(HHID,Age,Literate,Student,Sex)] +D1<-merge(D1,MD[,.(HHID,ProvinceCode,Decile,Weight,Region)],all.x = TRUE) +D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Region"] +x1<-D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="ProvinceCode"] +x2<-D1[Age>7,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Decile"] + +a1<-MD[,weighted.mean(HLiterate==FALSE,Weight),by="ProvinceCode"][order(ProvinceCode)] +a2<-MD[,weighted.mean(Knowledge==0,Weight,na.rm = TRUE),by="ProvinceCode"][order(ProvinceCode)] + + +X1<-X1[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X2<-X2[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X3<-X3[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] + + +png(file="C:/IRHEIS/R/1.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(HLiterate), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 22) +dev.off() + +png(file="C:/IRHEIS/R/2.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/3.png",width=1200, height=600) +ggplot(X3)+ +geom_line(mapping = aes(x=Year,y=HLiterate,col=factor(Decile), +linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + +############################################################################### +png(file="C:/IRHEIS/R/4.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Knowledge), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/5.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/6.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Knowledge,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/7.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Energy_Share), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/8.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/9.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Energy_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/10.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(electricity), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/11.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/12.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=electricity,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/13.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(cookfuel), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/14.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/15.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=cookfuel,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/16.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Calorie), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/17.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/18.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Calorie,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/19.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Protein), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/20.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/21.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Protein,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/22.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(No_Insurance), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/23.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/24.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=No_Insurance,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/25.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(pipewater), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/26.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/27.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=pipewater,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/28.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Area_Per), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/29.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/30.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Area_Per,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/31.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(skeleton), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/32.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/33.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=skeleton,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/34.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(House_High_Share), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/35.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/36.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=House_High_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/37.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/38.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/39.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=bathroom,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/40.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/41.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/42.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=ego,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/43.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(car), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/44.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/45.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=car,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/46.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Tech_low), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/47.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/48.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Tech_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/49.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Equip_low), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/50.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/51.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Equip_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + + + + +#write.csv(X1,file="X1.csv") +#write.csv(X2,file="X2.csv") +#write.csv(X3,file="X3.csv") +#write.csv(X4,file="X4.csv") +#write.csv(Province,file="Province.csv") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/Othe New codes/52-FoodGroup-Data.R b/R/Archive/Othe New codes/52-FoodGroup-Data.R new file mode 100644 index 00000000..68cc97f2 --- /dev/null +++ b/R/Archive/Othe New codes/52-FoodGroup-Data.R @@ -0,0 +1,114 @@ +# 52-FoodGroup-Data.R +# Builds the food group price-weight data.table for households +# +# Copyright © 2018: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(data.table) +library(stringr) +library(readxl) +library(imputeTS) + + for(year in (Settings$startyear:Settings$endyear)){ + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + TFoodGroups <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_FoodGroups)) + + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-MD[,.(HHID,Percentile)] + HHBase<-merge(HHBase,MD ,by =c("HHID"),all=FALSE) + HHBase<-HHBase[Percentile %in% Settings$InitialPoorPercentile] + + BigFoodPrice <- HHBase[,.N,by=.(Region,NewArea)] + for(i in 1:nrow(TFoodGroups)){ + cat(paste0(TFoodGroups[i,FoodType],", ")) + + ThisFoodTypeTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=TFoodGroups[i,SheetName])) + ft <- ThisFoodTypeTable[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + if(year %in% 76:82){ + pcols <- intersect(names(TF),c("HHID","Code","Kilos", + "Price","Expenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + + TF[,Kilos:=as.numeric(Kilos)] + TF[,Price:=as.numeric(str_replace_all(Price,"[\r\n]",""))] + TF[,Expenditure:=as.numeric(Expenditure)] + + + TF[is.na(Kilos),Kilos:=0] + TF[,FGrams:=(Kilos*1000)/30] + } + if(year >=83){ + pcols <- intersect(names(TF),c("HHID","Code","Grams","Kilos", + "Price","Expenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,Price:=as.numeric(str_replace_all(Price,"[\r\n]",""))] + TF[,Expenditure:=as.numeric(Expenditure)] + + TF[is.na(Grams),Grams:=0] + TF[is.na(Kilos),Kilos:=0] + TF[,FGrams:=(Kilos*1000+Grams)/30] + } + TF[is.na(Price) & !is.na(Expenditure) & !is.na(FGrams), Price:=Expenditure/FGrams] + TF[is.na(FGrams) & !is.na(Expenditure) & !is.na(Price), FGrams:=Expenditure/Price] + TF[is.na(Expenditure) & !is.na(FGrams) & !is.na(Price), Expenditure:=Price*FGrams] + + load(paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + + TF <- merge(TF[,.(HHID,Code,Price,Expenditure,FGrams)], + HHBase[,.(HHID,Region,NewArea,NewArea_Name)], by="HHID") + TF <- merge(TF, HHWeights[,.(HHID,Weight)]) + TF1 <- TF[,.(P=sum(Expenditure*Weight,na.rm = TRUE)/sum(FGrams*Weight,na.rm = TRUE), + X=sum(Expenditure*Weight,na.rm = TRUE)/sum(Weight,na.rm = TRUE)), + by=.(Region,NewArea)] + + setnames(TF1,"P",paste0("P_",TFoodGroups[i,FoodType])) + setnames(TF1,"X",paste0("X_",TFoodGroups[i,FoodType])) + + BigFoodPrice <- merge(BigFoodPrice,TF1,all.x = TRUE) + } + n <- names(BigFoodPrice) + w <- n%like% "X_" + s <- n[w] + BigFoodPrice[,TFX:=Reduce(`+`, .SD),.SDcols=s] + for(i in which(w)){ + BigFoodPrice$Sh=BigFoodPrice[,..i]/BigFoodPrice$TFX + setnames(BigFoodPrice,"Sh",paste(paste0("Sh",names(BigFoodPrice[,..i])))) + } + # n <- names(BigFoodPrice) + # w <- n%like% "ShX_" + # s <- n[w] + # BigFoodPrice[,TSh:=Reduce(`+`, .SD),.SDcols=s] + + BigFoodPrice[] <- lapply(BigFoodPrice, function(x) ifelse(is.na(x), mean(x, na.rm = TRUE), x)) + + + save(BigFoodPrice,file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFoodPrice.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) +cat(" seconds. ") diff --git a/R/Archive/Othe New codes/53-Clustering(only for 95).R b/R/Archive/Othe New codes/53-Clustering(only for 95).R new file mode 100644 index 00000000..97b143ee --- /dev/null +++ b/R/Archive/Othe New codes/53-Clustering(only for 95).R @@ -0,0 +1,114 @@ +#53-Clustering(only for 95).R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + + cat(paste0("\n------------------------------\nYear:",Settings$baseyear,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"InitialPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"BigFoodPrice.rda")) + #BigFoodPrice[,ifelse(Region==1,Region=="Urban",Region=="Rural")] + MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all=TRUE) + + #K-means weights + FW <- MD[,.(X_Berenj, X_Ghand, X_Goosht,X_Hoboobat, + X_Mahi, X_Makarooni,X_Mast, X_Mive, + X_Morgh, X_Nan,X_Panir, X_Roghan, + X_Sabzi, X_Shir, X_Sibzamini, X_Tokhmemorgh, + ServiceExp,Region,NewArea,NewArea_Name,Weight)] + + FP <- MD[,.(P_Berenj, P_Ghand, P_Goosht,P_Hoboobat, + P_Mahi, P_Makarooni,P_Mast, P_Mive, + P_Morgh, P_Nan,P_Panir, P_Roghan, + P_Sabzi, P_Shir, P_Sibzamini, P_Tokhmemorgh, + MetrPrice,Region,NewArea,NewArea_Name,Weight)] + + dt1 <- FW[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region,NewArea,NewArea_Name)] + dt1<- dt1[order(Region,NewArea)] + dt1[,NewArea:=NULL] + dt1[,NewArea_Name:=NULL] + dt1[,Weight:=NULL] + dt1[,Region:=NULL] + + dt2 <- FP[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region,NewArea,NewArea_Name)] + dt2<- dt2[order(Region,NewArea)] + dt2[,Weight:=NULL] + dtUrban<-dt2[Region=="Urban"] + dtRural<-dt2[Region=="Rural"] + dt2Urban<-dtUrban[,.(P_Berenj, P_Ghand, P_Goosht,P_Hoboobat, + P_Mahi, P_Makarooni,P_Mast, P_Mive, + P_Morgh, P_Nan,P_Panir, P_Roghan, + P_Sabzi, P_Shir, P_Sibzamini, P_Tokhmemorgh, + MetrPrice,NewArea,NewArea_Name,Region)] + dt2Rural<-dtRural[,.(P_Berenj, P_Ghand, P_Goosht,P_Hoboobat, + P_Mahi, P_Makarooni,P_Mast, P_Mive, + P_Morgh, P_Nan,P_Panir, P_Roghan, + P_Sabzi, P_Shir, P_Sibzamini, P_Tokhmemorgh, + MetrPrice,NewArea,NewArea_Name,Region)] + dtUrban[,NewArea:=NULL] + dtRural[,NewArea:=NULL] + dtUrban[,NewArea_Name:=NULL] + dtRural[,NewArea_Name:=NULL] + dtUrban[,Region:=NULL] + dtRural[,Region:=NULL] + + # Deciding how many clusters + # Urban areas + wss <- (nrow(dtUrban)-1)*sum(apply(dtUrban,2,var)) + for (i in 2:30) wss[i] <- sum(kmeans(dtUrban, centers=i)$withinss) + plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Urban's within groups sum of squares") + + # Rural areas + wss <- (nrow(dtRural)-1)*sum(apply(dtRural,2,var)) + for (i in 2:30) wss[i] <- sum(kmeans(dtRural, centers=i)$withinss) + plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Rural's within groups sum of squares") + + #Weighted clustering + # Urban areas + dt1.m <- dt1[,lapply(.SD, mean)] # Weights for each vector + dtW <- dtUrban * sqrt(dt1.m[rep(1,nrow(dtUrban))]) # Weighted observations + kmeans(dtW,3) # Simple K-means + cl <- kmeans(dtW,3) + dt2Urban <- dt2Urban[,cluster:=data.table(cl$cluster)] + dt2Urban<-dt2Urban[,.(NewArea,NewArea_Name,Region,cluster)] + save(dt2Urban,file ="dt2Urban.rda") + + # Rural areas + dt1.m <- dt1[,lapply(.SD, mean)] # Weights for each vector + dtW <- dtRural * sqrt(dt1.m[rep(1,nrow(dtRural))]) # Weighted observations + kmeans(dtW,3) # Simple K-means + cl <- kmeans(dtW,3) + dt2Rural <- dt2Rural[,cluster:=data.table(cl$cluster)] + dt2Rural<-dt2Rural[,.(NewArea,NewArea_Name,Region,cluster)] + save(dt2Rural,file ="dt2Rural.rda") + + #load(file="dtpastUrban.rda") + #load(file="dtpastRural.rda") + + #dt2total<-rbind(dtpastUrban,dtpastRural) + + dt2total<-rbind(dt2Urban,dt2Rural) + + for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region"),all.x=TRUE) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) + } + + endtime <- proc.time() + cat("\n\n============================\nIt took ") + cat((endtime-starttime)["elapsed"]) + cat(" seconds") \ No newline at end of file diff --git a/R/Archive/Othe New codes/53-Manipulated Clustering.R b/R/Archive/Othe New codes/53-Manipulated Clustering.R new file mode 100644 index 00000000..09a25afd --- /dev/null +++ b/R/Archive/Othe New codes/53-Manipulated Clustering.R @@ -0,0 +1,97 @@ +#53-Manipulated Clustering.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +cat(paste0("\n------------------------------\nYear:",Settings$baseyear,"\n")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"InitialPoor.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"BigFoodPrice.rda")) +MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all=TRUE) + +#####Clustering##### +dt2Urban<-MD[Region=="Urban",.(NewArea,NewArea_Name,Region,HHID)] +dt2Rural<-MD[Region=="Rural",.(NewArea,NewArea_Name,Region,HHID)] + +#####Urban##### +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Tehran",cluster2:=1] +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Shiraz" | NewArea_Name=="Sh_Esfahan" | + NewArea_Name=="Sh_Bandarabas" | NewArea_Name=="Gilan" | + NewArea_Name=="Sh_Karaj" | NewArea_Name=="Sh_Arak" | + NewArea_Name=="Mazandaran" , + cluster2:=2] +dt2Urban<-dt2Urban[NewArea_Name=="Ghom" | NewArea_Name=="Alborz" | + NewArea_Name=="Sh_Kermanshah" | NewArea_Name=="Hamedan" | + NewArea_Name=="Az_Sharghi" | NewArea_Name=="Sh_Tabriz" | + NewArea_Name=="Tehran" | NewArea_Name=="Semnan" | + NewArea_Name=="Sh_Urmia" | NewArea_Name=="Sh_Mashhad" | + NewArea_Name=="Esfahan" | NewArea_Name=="Fars" | + NewArea_Name=="Sh_Kerman" | NewArea_Name=="Ghazvin" , + cluster2:=3] +dt2Urban<-dt2Urban[NewArea_Name=="Zanjan" | NewArea_Name=="Golestan" | + NewArea_Name=="Kermanshah" | NewArea_Name=="Markazi" | + NewArea_Name=="Yazd" | NewArea_Name=="Kordestan" | + NewArea_Name=="Chaharmahal" | + NewArea_Name=="Ardebil" | NewArea_Name=="Booshehr" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Kerman" | + NewArea_Name=="Lorestan" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Khorasan_Shomali", + cluster2:=4] +dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" |NewArea_Name=="Ilam" | + NewArea_Name=="Khorasan_Jonoobi" | + NewArea_Name=="Hormozgan" | NewArea_Name=="Kohkilooye" | + NewArea_Name=="Khorasan_Razavi" | NewArea_Name=="Sh_Zahedan", + cluster2:=5] +dt2Urban<-dt2Urban[NewArea_Name=="Sistan",cluster2:=6] + +#####Rural##### +dt2Rural<-dt2Rural[NewArea_Name=="Tehran" | NewArea_Name=="Alborz", + cluster2:=1] +dt2Rural<-dt2Rural[NewArea_Name=="Esfahan" | NewArea_Name=="Yazd" | + NewArea_Name=="Mazandaran" | NewArea_Name=="Gilan" , + cluster2:=2] +dt2Rural<-dt2Rural[NewArea_Name=="Az_Sharghi" | NewArea_Name=="Ghom" | + NewArea_Name=="Golestan" | NewArea_Name=="Semnan"| + NewArea_Name=="Kermanshah" | NewArea_Name=="Ghazvin", + cluster2:=3] +dt2Rural<-dt2Rural[NewArea_Name=="Chaharmahal" | NewArea_Name=="Fars" | + NewArea_Name=="Zanjan" | NewArea_Name=="Markazi" | + NewArea_Name=="Booshehr" | NewArea_Name=="Hamedan" | + NewArea_Name=="Kordestan" , + cluster2:=4] +dt2Rural<-dt2Rural[NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Lorestan" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Hormozgan" | NewArea_Name=="Khoozestan" | + NewArea_Name=="Khorasan_Razavi" | NewArea_Name=="Ardebil" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Ilam" | + NewArea_Name=="Kerman" , + cluster2:=5] +dt2Rural<-dt2Rural[NewArea_Name=="Sistan",cluster2:=6] + +#####Merge##### +dt2total<-rbind(dt2Urban,dt2Rural) +dt2total[,Region:=NULL] +dt2total[,NewArea:=NULL] +dt2total[,NewArea_Name:=NULL] + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-merge(MD,dt2total,by=c("HHID")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/Othe New codes/53-Test new clustering.R b/R/Archive/Othe New codes/53-Test new clustering.R new file mode 100644 index 00000000..8cf083d6 --- /dev/null +++ b/R/Archive/Othe New codes/53-Test new clustering.R @@ -0,0 +1,101 @@ +#53-Test new clustering(only for 95).R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +cat(paste0("\n------------------------------\nYear:",Settings$baseyear,"\n")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"InitialPoor.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"BigFoodPrice.rda")) +#BigFoodPrice[,ifelse(Region==1,Region=="Urban",Region=="Rural")] +load(file = "EngleP.rda") + +MD<-merge(MD,EngleP,by=c("NewArea_Name","Region"),all=TRUE) + +#K-means weights +MD<-MD[,ServiceExp2:=ServiceExp] +FW <- MD[,.(ServiceExp,ServiceExp2,Region,NewArea,NewArea_Name,Weight)] + +FP <- MD[,.(Engel,MetrPrice,Region,NewArea,NewArea_Name,Weight)] + +dt1 <- FW[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region,NewArea,NewArea_Name)] +dt1<- dt1[order(Region,NewArea)] +dt1[,NewArea:=NULL] +dt1[,NewArea_Name:=NULL] +dt1[,Weight:=NULL] +dt1[,Region:=NULL] + +dt2 <- FP[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(Region,NewArea,NewArea_Name)] +dt2<- dt2[order(Region,NewArea)] +dt2[,Weight:=NULL] +dtUrban<-dt2[Region=="Urban"] +dtRural<-dt2[Region=="Rural"] +dt2Urban<-dtUrban[,.(Engel,MetrPrice,NewArea,NewArea_Name,Region)] +dt2Rural<-dtRural[,.(Engel,MetrPrice,NewArea,NewArea_Name,Region)] +dtUrban[,NewArea:=NULL] +dtRural[,NewArea:=NULL] +dtUrban[,NewArea_Name:=NULL] +dtRural[,NewArea_Name:=NULL] +dtUrban[,Region:=NULL] +dtRural[,Region:=NULL] + +# Deciding how many clusters +# Urban areas +wss <- (nrow(dtUrban)-1)*sum(apply(dtUrban,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dtUrban, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Urban's within groups sum of squares") + +# Rural areas +wss <- (nrow(dtRural)-1)*sum(apply(dtRural,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dtRural, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Rural's within groups sum of squares") + +#Weighted clustering +# Urban areas +dt1.m <- dt1[,lapply(.SD, mean)] # Weights for each vector +dtW <- dtUrban * sqrt(dt1.m[rep(1,nrow(dtUrban))]) # Weighted observations +kmeans(dtW,3) # Simple K-means +cl <- kmeans(dtW,3) +dt2Urban <- dt2Urban[,cluster:=data.table(cl$cluster)] +dt2Urban<-dt2Urban[,.(NewArea,NewArea_Name,Region,cluster)] +#save(dt2Urban,file ="dt2Urban.rda") + +# Rural areas +dt1.m <- dt1[,lapply(.SD, mean)] # Weights for each vector +dtW <- dtRural * sqrt(dt1.m[rep(1,nrow(dtRural))]) # Weighted observations +kmeans(dtW,3) # Simple K-means +cl <- kmeans(dtW,3) +dt2Rural <- dt2Rural[,cluster:=data.table(cl$cluster)] +dt2Rural<-dt2Rural[,.(NewArea,NewArea_Name,Region,cluster)] +#save(dt2Rural,file ="dt2Rural.rda") + +#load(file="dtpastUrban.rda") +#load(file="dtpastRural.rda") + +#dt2total<-rbind(dtpastUrban,dtpastRural) + +dt2total<-rbind(dt2Urban,dt2Rural) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) +# load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +# MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region"),all.x=TRUE) +# save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +#} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/Othe New codes/55-Manipulated Clustering(93-96).R b/R/Archive/Othe New codes/55-Manipulated Clustering(93-96).R new file mode 100644 index 00000000..a03cbb8a --- /dev/null +++ b/R/Archive/Othe New codes/55-Manipulated Clustering(93-96).R @@ -0,0 +1,105 @@ +#55-Manipulated Clustering(93-96).R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +library(dplyr) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +cat(paste0("\n------------------------------\nYear:",Settings$baseyear,"\n")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"InitialPoor.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"BigFoodPrice.rda")) +MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all=TRUE) + +#####Clustering##### +dt2Urban<-MD[Region=="Urban",.(NewArea,NewArea_Name,Region,HHID)] +dt2Rural<-MD[Region=="Rural",.(NewArea,NewArea_Name,Region,HHID)] + +#####Urban##### +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Tehran",cluster3:=1] +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Shiraz" | NewArea_Name=="Sh_Esfahan" | + NewArea_Name=="Sh_Bandarabas" | + NewArea_Name=="Sh_Karaj" , + cluster3:=2] +dt2Urban<-dt2Urban[NewArea_Name=="Gilan" | NewArea_Name=="Alborz" | + NewArea_Name=="Kohkilooye" , + cluster3:=3] +dt2Urban<-dt2Urban[NewArea_Name=="Mazandaran" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Tehran" | + NewArea_Name=="Yazd" | NewArea_Name=="Sh_Tabriz" | + NewArea_Name=="Sh_Mashhad" | NewArea_Name=="Ghom" | + NewArea_Name=="Sh_Kerman" | NewArea_Name=="Sh_Arak" | + NewArea_Name=="Ghazvin" | NewArea_Name=="Fars" | NewArea_Name=="Markazi" | + NewArea_Name=="Esfahan" , + cluster3:=4] +dt2Urban<-dt2Urban[NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Semnan" | NewArea_Name=="Hamedan" | + NewArea_Name=="Kerman" | NewArea_Name=="Zanjan" | + NewArea_Name=="Hormozgan"| + NewArea_Name=="Booshehr" | NewArea_Name=="Kordestan" | + NewArea_Name=="Ardebil" | NewArea_Name=="Chaharmahal" | + NewArea_Name=="Sh_Urmia", + cluster3:=5] +dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" |NewArea_Name=="Ilam" | + NewArea_Name=="Khorasan_Razavi" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Kermanshah" | NewArea_Name=="Lorestan" | + NewArea_Name=="Sh_Kermanshah" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Golestan", + cluster3:=6] +dt2Urban<-dt2Urban[NewArea_Name=="Sistan" | NewArea_Name=="Sh_Zahedan", + cluster3:=7] +save(dt2Urban,file ="dt2Urban.rda") +#####Rural##### +dt2Rural<-dt2Rural[ NewArea_Name=="Tehran" | NewArea_Name=="Alborz", + cluster3:=1] +dt2Rural<-dt2Rural[NewArea_Name=="Esfahan" | NewArea_Name=="Mazandaran" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Booshehr", + cluster3:=2] +dt2Rural<-dt2Rural[ NewArea_Name=="Yazd" | + NewArea_Name=="Gilan" | NewArea_Name=="Zanjan" | + NewArea_Name=="Chaharmahal"| NewArea_Name=="Hormozgan" | NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Ghom" | + NewArea_Name=="Fars" | NewArea_Name=="Ghazvin" | + NewArea_Name=="Markazi", + cluster3:=3] +dt2Rural<-dt2Rural[ NewArea_Name=="Semnan"| NewArea_Name=="Hamedan" | + NewArea_Name=="Ardebil" | + NewArea_Name=="Kordestan"| + NewArea_Name=="Khoozestan", + cluster3:=4] +dt2Rural<-dt2Rural[NewArea_Name=="Khorasan_Razavi" | NewArea_Name=="Kermanshah" | + NewArea_Name=="Kerman" | NewArea_Name=="Golestan" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Lorestan" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Ilam" , + cluster3:=5] +dt2Rural<-dt2Rural[NewArea_Name=="Sistan",cluster3:=6] +save(dt2Rural,file ="dt2Rural.rda") +#####Merge##### +dt2total<-rbind(dt2Urban,dt2Rural) + + +dt2total[,HHID:=NULL] +dt2total<-distinct(dt2total) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/Othe New codes/55-Second Manipulated Clustering.R b/R/Archive/Othe New codes/55-Second Manipulated Clustering.R new file mode 100644 index 00000000..76215222 --- /dev/null +++ b/R/Archive/Othe New codes/55-Second Manipulated Clustering.R @@ -0,0 +1,108 @@ +#53-Second Manipulated Clustering.R +# +# Copyright © 2018: Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +library(dplyr) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +cat(paste0("\n------------------------------\nYear:",Settings$baseyear,"\n")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"InitialPoor.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",Settings$baseyear,"BigFoodPrice.rda")) +MD<-merge(MD,BigFoodPrice,by=c("NewArea","Region"),all=TRUE) + +#####Clustering##### +dt2Urban<-MD[Region=="Urban",.(NewArea,NewArea_Name,Region,HHID)] +dt2Rural<-MD[Region=="Rural",.(NewArea,NewArea_Name,Region,HHID)] + +#####Urban##### +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Tehran",cluster3:=1] +dt2Urban<-dt2Urban[NewArea_Name=="Sh_Shiraz" | NewArea_Name=="Sh_Esfahan" | + NewArea_Name=="Sh_Bandarabas" | + NewArea_Name=="Sh_Karaj" , + cluster3:=2] +dt2Urban<-dt2Urban[NewArea_Name=="Gilan" | NewArea_Name=="Alborz", + cluster3:=3] +dt2Urban<-dt2Urban[NewArea_Name=="Mazandaran" | + NewArea_Name=="Sh_Ahvaz" | NewArea_Name=="Tehran"| + NewArea_Name=="Kohkilooye" | + NewArea_Name=="Yazd" | NewArea_Name=="Sh_Tabriz" | + NewArea_Name=="Sh_Mashhad" | NewArea_Name=="Ghom" | + NewArea_Name=="Sh_Kerman" | NewArea_Name=="Sh_Arak" | + NewArea_Name=="Ghazvin" | NewArea_Name=="Fars" | + NewArea_Name=="Hormozgan" | NewArea_Name=="Markazi" | + NewArea_Name=="Semnan" | NewArea_Name=="Hamedan" | + NewArea_Name=="Esfahan" , + cluster3:=4] +dt2Urban<-dt2Urban[NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Kerman" | NewArea_Name=="Zanjan" | + NewArea_Name=="Booshehr" | NewArea_Name=="Kordestan" | + NewArea_Name=="Ardebil" | NewArea_Name=="Chaharmahal" | + NewArea_Name=="Khorasan_Razavi", + cluster3:=5] +dt2Urban<-dt2Urban[NewArea_Name=="Khoozestan" |NewArea_Name=="Ilam" | + NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Kermanshah" | NewArea_Name=="Lorestan" | + NewArea_Name=="Sh_Kermanshah" | NewArea_Name=="Sh_Urmia" , + cluster3:=6] +dt2Urban<-dt2Urban[NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Golestan", + cluster3:=7] +dt2Urban<-dt2Urban[NewArea_Name=="Sistan" | NewArea_Name=="Sh_Zahedan", + cluster3:=8] +save(dt2Urban,file ="dt2Urban.rda") +#####Rural##### +dt2Rural<-dt2Rural[ NewArea_Name=="Tehran" | NewArea_Name=="Alborz", + cluster3:=1] +dt2Rural<-dt2Rural[NewArea_Name=="Esfahan" | NewArea_Name=="Mazandaran" , + cluster3:=2] +dt2Rural<-dt2Rural[ NewArea_Name=="Yazd" | + NewArea_Name=="Kohkilooye" | NewArea_Name=="Booshehr" | + NewArea_Name=="Gilan" , + cluster3:=3] +dt2Rural<-dt2Rural[ NewArea_Name=="Hormozgan" | NewArea_Name=="Az_Sharghi" | + NewArea_Name=="Ghom" | NewArea_Name=="Semnan"| + NewArea_Name=="Fars" | NewArea_Name=="Ghazvin", + cluster3:=4] +dt2Rural<-dt2Rural[ NewArea_Name=="Zanjan" | NewArea_Name=="Markazi" | + NewArea_Name=="Hamedan", + cluster3:=5] +dt2Rural<-dt2Rural[NewArea_Name=="Khorasan_Razavi" | NewArea_Name=="Kermanshah" | + NewArea_Name=="Kerman" | NewArea_Name=="Golestan" | + NewArea_Name=="Chaharmahal"| + NewArea_Name=="Ardebil" | + NewArea_Name=="Kordestan"| + NewArea_Name=="Khoozestan", + cluster3:=6] +dt2Rural<-dt2Rural[NewArea_Name=="Khorasan_Jonoobi" | NewArea_Name=="Lorestan" | + NewArea_Name=="Khorasan_Shomali" | NewArea_Name=="Az_Gharbi" | + NewArea_Name=="Ilam" , + cluster3:=7] +dt2Rural<-dt2Rural[NewArea_Name=="Sistan",cluster3:=8] +save(dt2Rural,file ="dt2Rural.rda") +#####Merge##### +dt2total<-rbind(dt2Urban,dt2Rural) + + +dt2total[,HHID:=NULL] +dt2total<-distinct(dt2total) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) + MD<-merge(MD,dt2total,by=c("NewArea","NewArea_Name","Region")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoorClustered.rda")) +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/Othe New codes/57-PovertyLines.R b/R/Archive/Othe New codes/57-PovertyLines.R new file mode 100644 index 00000000..d4f09c11 --- /dev/null +++ b/R/Archive/Othe New codes/57-PovertyLines.R @@ -0,0 +1,90 @@ +# 55-PovertyLines.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + + EngleD <- MD[ TFoodExpenditure_Per>0.9*FPLine & TFoodExpenditure_Per<1.1*FPLine, + .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + + EngleP <- MD[ TFoodExpenditure_Per>0.9*FPLine & TFoodExpenditure_Per<1.1*FPLine, + .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,NewArea_Name)] + + MD[,EngelPersonal:=TFoodExpenditure/Total_Exp_Month] + + save(EngleP,file = "EngleP.rda") + EngleD[,PovertyLine:=FPLine/Engel] + EngleP[,PovertyLine:=FPLine/Engel] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engel)],by=c("Region","cluster3")) + EngleD[,P4:=PovertyLine*2.7] + #MD<-MD[Region=="Rural" & cluster3==7] + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight*Size)],"\t", + MD[,weighted.mean(Engel,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("ProvinceCode")][order(ProvinceCode)] + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","cluster3")][order(Region,cluster3)] + MD[,weighted.mean(FinalPoor,Weight),by=c("Region")] + MD2<-MD[,.(HHID,FinalPoor,Weight)] + save(MD2,file=paste0(Settings$HEISProcessedPath,"Y",year,"PoorsforMerge.rda")) + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) +} + +x<-EngleP[Region=="Rural",.(Engel,NewArea_Name)] +x$NewArea <- factor(x$NewArea, levels = x$NewArea[order(x$Engel)]) +ggplot(x, aes(x = x$NewArea, y = x$Engel)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +y<-EngleP[Region=="Urban",.(Engel,NewArea_Name)] +y$NewArea <- factor(y$NewArea, levels = y$NewArea[order(y$Engel)]) +ggplot(y, aes(x = y$NewArea, y = y$Engel)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +x2<-EngleP[Region=="Rural",.(FPLine,NewArea_Name)] +x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$FPLine)]) +ggplot(x2, aes(x = x2$NewArea, y = x2$FPLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +y2<-EngleP[Region=="Urban",.(FPLine,NewArea_Name)] +y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$FPLine)]) +ggplot(y2, aes(x = y2$NewArea, y = y2$FPLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +x3<-EngleP[Region=="Rural",.(PovertyLine,NewArea_Name)] +x3$NewArea <- factor(x3$NewArea, levels = x3$NewArea[order(x3$PovertyLine)]) +ggplot(x3, aes(x = x3$NewArea, y = x3$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +y3<-EngleP[Region=="Urban",.(PovertyLine,NewArea_Name)] +y3$NewArea <- factor(y3$NewArea, levels = y3$NewArea[order(y3$PovertyLine)]) +ggplot(y3, aes(x = y3$NewArea, y = y3$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +#NewFinalPoor<-MD[,.(HHID,Region,NewArea,NewArea,FinalPoor)] +NewFinalPoor<-MD[,.(HHID,Region,NewArea,NewArea,Weight,HAge,HSex, + ProvinceCode,Size,HLiterate,HEduLevel0,Area, + Rooms,MetrPrice, HActivityState,FinalPoor)] + +save(NewFinalPoor,file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) +Final<-NewFinalPoor[,.(HHID,Region,Weight,FinalPoor)] +save(Final,file=paste0(Settings$HEISProcessedPath,"Y",year,"Final.rda")) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/Other Codes/57-CBN-Rural97-shahrivar.R b/R/Archive/Other Codes/57-CBN-Rural97-shahrivar.R new file mode 100644 index 00000000..3c78d66b --- /dev/null +++ b/R/Archive/Other Codes/57-CBN-Rural97-shahrivar.R @@ -0,0 +1,3049 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(foreign) +library(haven) +load(file = "data9697.rda") + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] +CBN<-merge(CBN,data9697,by =c("ProvinceCode"),all.x=TRUE) + +CBN$FoodExpenditure<-CBN$FoodExpenditure*CBN$shahrivar971food_index/100 +CBN$Cigar_Exp<-CBN$Cigar_Exp*CBN$shahrivar971cigar_index/100 +CBN$Cloth_Exp<-CBN$Cloth_Exp*CBN$shahrivar971cloth_index/100 +CBN$Amusement_Exp<-CBN$Amusement_Exp*CBN$shahrivar971amusement_index/100 +CBN$Communication_Exp<-CBN$Communication_Exp*CBN$shahrivar971communication_index/100 +CBN$EducExpenditure<-CBN$EducExpenditure*CBN$shahrivar971education_index/100 +CBN$Energy_Exp<-CBN$Energy_Exp*CBN$shahrivar971house_energy_index/100 +CBN$Furniture_Exp<-CBN$Furniture_Exp*CBN$shahrivar971furniture_index/100 +CBN$Hotel_Exp<-CBN$Hotel_Exp*CBN$shahrivar971hotel_index/100 +CBN$Behdasht_Exp<-CBN$Behdasht_Exp*CBN$shahrivar971behdasht_index/100 +CBN$Transportation_Exp<-CBN$Transportation_Exp*CBN$shahrivar971transportation_index/100 +CBN$Other_Exp<-CBN$Other_Exp*CBN$shahrivar971other_index/100 +CBN$ServiceExp<-CBN$ServiceExp*CBN$shahrivar971house_energy_index/100 +CBN$Investment_Exp<-CBN$Investment_Exp*CBN$shahrivar97/100 +CBN$Medical_Exp<-CBN$Medical_Exp*CBN$shahrivar971behdasht_index/100 +CBN$Durable_Exp<-CBN$Durable_Exp*CBN$shahrivar97/100 + +CBN[ ,shahrivar971furniture_index :=NULL] +CBN[ ,shahrivar971communication_index :=NULL] +CBN[ ,shahrivar971behdasht_index :=NULL] +CBN[ ,shahrivar971education_index :=NULL] +CBN[ ,shahrivar971amusement_index :=NULL] +CBN[ ,shahrivar971transportation_index :=NULL] +CBN[ ,shahrivar971food_index :=NULL] +CBN[ ,shahrivar971cigar_index :=NULL] +CBN[ ,shahrivar971hotel_index :=NULL] +CBN[ ,shahrivar971total_index :=NULL] +CBN[ ,shahrivar971house_energy_index :=NULL] +CBN[ ,shahrivar971cloth_index :=NULL] +CBN[ ,shahrivar971other_index :=NULL] +CBN[ ,spring971furniture_index :=NULL] +CBN[ ,spring971communication_index :=NULL] +CBN[ ,spring971behdasht_index :=NULL] +CBN[ ,spring971education_index :=NULL] +CBN[ ,spring971amusement_index :=NULL] +CBN[ ,spring971transportation_index :=NULL] +CBN[ ,spring971food_index :=NULL] +CBN[ ,spring971cigar_index :=NULL] +CBN[ ,spring971hotel_index :=NULL] +CBN[ ,spring971total_index :=NULL] +CBN[ ,spring971house_energy_index :=NULL] +CBN[ ,spring971cloth_index :=NULL] +CBN[ ,spring971other_index :=NULL] +CBN[ ,summer971furniture_index :=NULL] +CBN[ ,summer971communication_index :=NULL] +CBN[ ,summer971behdasht_index :=NULL] +CBN[ ,summer971education_index :=NULL] +CBN[ ,summer971amusement_index :=NULL] +CBN[ ,summer971transportation_index :=NULL] +CBN[ ,summer971food_index :=NULL] +CBN[ ,summer971cigar_index :=NULL] +CBN[ ,summer971hotel_index :=NULL] +CBN[ ,summer971total_index :=NULL] +CBN[ ,summer971house_energy_index :=NULL] +CBN[ ,summer971cloth_index :=NULL] +CBN[ ,summer971other_index :=NULL] +CBN[ ,total961furniture_index :=NULL] +CBN[ ,total961communication_index :=NULL] +CBN[ ,total961behdasht_index :=NULL] +CBN[ ,total961education_index :=NULL] +CBN[ ,total961amusement_index :=NULL] +CBN[ ,total961transportation_index :=NULL] +CBN[ ,total961food_index :=NULL] +CBN[ ,total961cigar_index :=NULL] +CBN[ ,total961hotel_index :=NULL] +CBN[ ,total961total_index :=NULL] +CBN[ ,total961house_energy_index :=NULL] +CBN[ ,total961cloth_index :=NULL] +CBN[ ,total961other_index :=NULL] + +CBN[ ,spring97 :=NULL] +CBN[ ,summer97 :=NULL] +CBN[ ,total96 :=NULL] +CBN[ ,shahrivar97 :=NULL] + + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + + +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] +CBNPoor[,sum(HIndivNo)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor2[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Rural<-CBN +save(CBN_Rural, file = paste0(Settings$HEISProcessedPath,"CBN_Rural","95.rda")) + +CBNPoor_Rural<-CBNPoor11 +save(CBNPoor_Rural, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Rural","95.rda")) + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/57-CBN-Urban97-shahrivar.R b/R/Archive/Other Codes/57-CBN-Urban97-shahrivar.R new file mode 100644 index 00000000..666bb96f --- /dev/null +++ b/R/Archive/Other Codes/57-CBN-Urban97-shahrivar.R @@ -0,0 +1,3036 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(foreign) +library(haven) + +load(file = "data9697.rda") +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + + +CBN<-merge(CBN,data9697,by =c("ProvinceCode"),all.x=TRUE) + +CBN$FoodExpenditure<-CBN$FoodExpenditure*CBN$shahrivar971food_index/100 +CBN$Cigar_Exp<-CBN$Cigar_Exp*CBN$shahrivar971cigar_index/100 +CBN$Cloth_Exp<-CBN$Cloth_Exp*CBN$shahrivar971cloth_index/100 +CBN$Amusement_Exp<-CBN$Amusement_Exp*CBN$shahrivar971amusement_index/100 +CBN$Communication_Exp<-CBN$Communication_Exp*CBN$shahrivar971communication_index/100 +CBN$EducExpenditure<-CBN$EducExpenditure*CBN$shahrivar971education_index/100 +CBN$Energy_Exp<-CBN$Energy_Exp*CBN$shahrivar971house_energy_index/100 +CBN$Furniture_Exp<-CBN$Furniture_Exp*CBN$shahrivar971furniture_index/100 +CBN$Hotel_Exp<-CBN$Hotel_Exp*CBN$shahrivar971hotel_index/100 +CBN$Behdasht_Exp<-CBN$Behdasht_Exp*CBN$shahrivar971behdasht_index/100 +CBN$Transportation_Exp<-CBN$Transportation_Exp*CBN$shahrivar971transportation_index/100 +CBN$Other_Exp<-CBN$Other_Exp*CBN$shahrivar971other_index/100 +CBN$ServiceExp<-CBN$ServiceExp*CBN$shahrivar971house_energy_index/100 +CBN$Investment_Exp<-CBN$Investment_Exp*CBN$shahrivar97/100 +CBN$Medical_Exp<-CBN$Medical_Exp*CBN$shahrivar971behdasht_index/100 +CBN$Durable_Exp<-CBN$Durable_Exp*CBN$shahrivar97/100 + +CBN[ ,shahrivar971furniture_index :=NULL] +CBN[ ,shahrivar971communication_index :=NULL] +CBN[ ,shahrivar971behdasht_index :=NULL] +CBN[ ,shahrivar971education_index :=NULL] +CBN[ ,shahrivar971amusement_index :=NULL] +CBN[ ,shahrivar971transportation_index :=NULL] +CBN[ ,shahrivar971food_index :=NULL] +CBN[ ,shahrivar971cigar_index :=NULL] +CBN[ ,shahrivar971hotel_index :=NULL] +CBN[ ,shahrivar971total_index :=NULL] +CBN[ ,shahrivar971house_energy_index :=NULL] +CBN[ ,shahrivar971cloth_index :=NULL] +CBN[ ,shahrivar971other_index :=NULL] +CBN[ ,spring971furniture_index :=NULL] +CBN[ ,spring971communication_index :=NULL] +CBN[ ,spring971behdasht_index :=NULL] +CBN[ ,spring971education_index :=NULL] +CBN[ ,spring971amusement_index :=NULL] +CBN[ ,spring971transportation_index :=NULL] +CBN[ ,spring971food_index :=NULL] +CBN[ ,spring971cigar_index :=NULL] +CBN[ ,spring971hotel_index :=NULL] +CBN[ ,spring971total_index :=NULL] +CBN[ ,spring971house_energy_index :=NULL] +CBN[ ,spring971cloth_index :=NULL] +CBN[ ,spring971other_index :=NULL] +CBN[ ,summer971furniture_index :=NULL] +CBN[ ,summer971communication_index :=NULL] +CBN[ ,summer971behdasht_index :=NULL] +CBN[ ,summer971education_index :=NULL] +CBN[ ,summer971amusement_index :=NULL] +CBN[ ,summer971transportation_index :=NULL] +CBN[ ,summer971food_index :=NULL] +CBN[ ,summer971cigar_index :=NULL] +CBN[ ,summer971hotel_index :=NULL] +CBN[ ,summer971total_index :=NULL] +CBN[ ,summer971house_energy_index :=NULL] +CBN[ ,summer971cloth_index :=NULL] +CBN[ ,summer971other_index :=NULL] +CBN[ ,total961furniture_index :=NULL] +CBN[ ,total961communication_index :=NULL] +CBN[ ,total961behdasht_index :=NULL] +CBN[ ,total961education_index :=NULL] +CBN[ ,total961amusement_index :=NULL] +CBN[ ,total961transportation_index :=NULL] +CBN[ ,total961food_index :=NULL] +CBN[ ,total961cigar_index :=NULL] +CBN[ ,total961hotel_index :=NULL] +CBN[ ,total961total_index :=NULL] +CBN[ ,total961house_energy_index :=NULL] +CBN[ ,total961cloth_index :=NULL] +CBN[ ,total961other_index :=NULL] + +CBN[ ,spring97 :=NULL] +CBN[ ,summer97 :=NULL] +CBN[ ,total96 :=NULL] +CBN[ ,shahrivar97 :=NULL] + + + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Size*Weight),by=.(cluster)][order(cluster)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(cluster)][order(cluster)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Urban<-CBN +save(CBN_Urban, file = paste0(Settings$HEISProcessedPath,"CBN_Urban","95.rda")) + +CBNPoor_Urban<-CBNPoor11 +save(CBNPoor_Urban, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Urban","95.rda")) + + +endtime <- proc.time() + + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/58-CBN-Rural97-1.R b/R/Archive/Other Codes/58-CBN-Rural97-1.R new file mode 100644 index 00000000..79ba4b21 --- /dev/null +++ b/R/Archive/Other Codes/58-CBN-Rural97-1.R @@ -0,0 +1,3093 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(foreign) +library(haven) +load(file = "data9697.rda") +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + +CBN<-merge(CBN,data9697,by =c("ProvinceCode"),all.x=TRUE) + +CBN$FoodExpenditure<-CBN$FoodExpenditure*CBN$spring971food_index/100 +CBN$Cigar_Exp<-CBN$Cigar_Exp*CBN$spring971cigar_index/100 +CBN$Cloth_Exp<-CBN$Cloth_Exp*CBN$spring971cloth_index/100 +CBN$Amusement_Exp<-CBN$Amusement_Exp*CBN$spring971amusement_index/100 +CBN$Communication_Exp<-CBN$Communication_Exp*CBN$spring971communication_index/100 +CBN$EducExpenditure<-CBN$EducExpenditure*CBN$spring971education_index/100 +CBN$Energy_Exp<-CBN$Energy_Exp*CBN$spring971house_energy_index/100 +CBN$Furniture_Exp<-CBN$Furniture_Exp*CBN$spring971furniture_index/100 +CBN$Hotel_Exp<-CBN$Hotel_Exp*CBN$spring971hotel_index/100 +CBN$Behdasht_Exp<-CBN$Behdasht_Exp*CBN$spring971behdasht_index/100 +CBN$Transportation_Exp<-CBN$Transportation_Exp*CBN$spring971transportation_index/100 +CBN$Other_Exp<-CBN$Other_Exp*CBN$spring971other_index/100 +CBN$ServiceExp<-CBN$ServiceExp*CBN$spring971house_energy_index/100 +CBN$Investment_Exp<-CBN$Investment_Exp*CBN$spring97/100 +CBN$Medical_Exp<-CBN$Medical_Exp*CBN$spring971behdasht_index/100 +CBN$Durable_Exp<-CBN$Durable_Exp*CBN$spring97/100 + +CBN[ ,shahrivar971furniture_index :=NULL] +CBN[ ,shahrivar971communication_index :=NULL] +CBN[ ,shahrivar971behdasht_index :=NULL] +CBN[ ,shahrivar971education_index :=NULL] +CBN[ ,shahrivar971amusement_index :=NULL] +CBN[ ,shahrivar971transportation_index :=NULL] +CBN[ ,shahrivar971food_index :=NULL] +CBN[ ,shahrivar971cigar_index :=NULL] +CBN[ ,shahrivar971hotel_index :=NULL] +CBN[ ,shahrivar971total_index :=NULL] +CBN[ ,shahrivar971house_energy_index :=NULL] +CBN[ ,shahrivar971cloth_index :=NULL] +CBN[ ,shahrivar971other_index :=NULL] +CBN[ ,spring971furniture_index :=NULL] +CBN[ ,spring971communication_index :=NULL] +CBN[ ,spring971behdasht_index :=NULL] +CBN[ ,spring971education_index :=NULL] +CBN[ ,spring971amusement_index :=NULL] +CBN[ ,spring971transportation_index :=NULL] +CBN[ ,spring971food_index :=NULL] +CBN[ ,spring971cigar_index :=NULL] +CBN[ ,spring971hotel_index :=NULL] +CBN[ ,spring971total_index :=NULL] +CBN[ ,spring971house_energy_index :=NULL] +CBN[ ,spring971cloth_index :=NULL] +CBN[ ,spring971other_index :=NULL] +CBN[ ,summer971furniture_index :=NULL] +CBN[ ,summer971communication_index :=NULL] +CBN[ ,summer971behdasht_index :=NULL] +CBN[ ,summer971education_index :=NULL] +CBN[ ,summer971amusement_index :=NULL] +CBN[ ,summer971transportation_index :=NULL] +CBN[ ,summer971food_index :=NULL] +CBN[ ,summer971cigar_index :=NULL] +CBN[ ,summer971hotel_index :=NULL] +CBN[ ,summer971total_index :=NULL] +CBN[ ,summer971house_energy_index :=NULL] +CBN[ ,summer971cloth_index :=NULL] +CBN[ ,summer971other_index :=NULL] +CBN[ ,total961furniture_index :=NULL] +CBN[ ,total961communication_index :=NULL] +CBN[ ,total961behdasht_index :=NULL] +CBN[ ,total961education_index :=NULL] +CBN[ ,total961amusement_index :=NULL] +CBN[ ,total961transportation_index :=NULL] +CBN[ ,total961food_index :=NULL] +CBN[ ,total961cigar_index :=NULL] +CBN[ ,total961hotel_index :=NULL] +CBN[ ,total961total_index :=NULL] +CBN[ ,total961house_energy_index :=NULL] +CBN[ ,total961cloth_index :=NULL] +CBN[ ,total961other_index :=NULL] + +CBN[ ,spring97 :=NULL] +CBN[ ,summer97 :=NULL] +CBN[ ,total96 :=NULL] +CBN[ ,shahrivar97 :=NULL] + + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] +CBNPoor[,sum(HIndivNo)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor2[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Rural<-CBN +save(CBN_Rural, file = paste0(Settings$HEISProcessedPath,"CBN_Rural","95.rda")) + +CBNPoor_Rural<-CBNPoor11 +save(CBNPoor_Rural, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Rural","95.rda")) + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/58-CBN-Rural97-2.R b/R/Archive/Other Codes/58-CBN-Rural97-2.R new file mode 100644 index 00000000..7932e119 --- /dev/null +++ b/R/Archive/Other Codes/58-CBN-Rural97-2.R @@ -0,0 +1,3049 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(foreign) +library(haven) +load(file = "data9697.rda") + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + +CBN<-merge(CBN,data9697,by =c("ProvinceCode"),all.x=TRUE) + +CBN$FoodExpenditure<-CBN$FoodExpenditure*CBN$summer971food_index/100 +CBN$Cigar_Exp<-CBN$Cigar_Exp*CBN$summer971cigar_index/100 +CBN$Cloth_Exp<-CBN$Cloth_Exp*CBN$summer971cloth_index/100 +CBN$Amusement_Exp<-CBN$Amusement_Exp*CBN$summer971amusement_index/100 +CBN$Communication_Exp<-CBN$Communication_Exp*CBN$summer971communication_index/100 +CBN$EducExpenditure<-CBN$EducExpenditure*CBN$summer971education_index/100 +CBN$Energy_Exp<-CBN$Energy_Exp*CBN$summer971house_energy_index/100 +CBN$Furniture_Exp<-CBN$Furniture_Exp*CBN$summer971furniture_index/100 +CBN$Hotel_Exp<-CBN$Hotel_Exp*CBN$summer971hotel_index/100 +CBN$Behdasht_Exp<-CBN$Behdasht_Exp*CBN$summer971behdasht_index/100 +CBN$Transportation_Exp<-CBN$Transportation_Exp*CBN$summer971transportation_index/100 +CBN$Other_Exp<-CBN$Other_Exp*CBN$summer971other_index/100 +CBN$ServiceExp<-CBN$ServiceExp*CBN$summer971house_energy_index/100 +CBN$Investment_Exp<-CBN$Investment_Exp*CBN$summer97/100 +CBN$Medical_Exp<-CBN$Medical_Exp*CBN$summer971behdasht_index/100 +CBN$Durable_Exp<-CBN$Durable_Exp*CBN$summer97/100 + +CBN[ ,shahrivar971furniture_index :=NULL] +CBN[ ,shahrivar971communication_index :=NULL] +CBN[ ,shahrivar971behdasht_index :=NULL] +CBN[ ,shahrivar971education_index :=NULL] +CBN[ ,shahrivar971amusement_index :=NULL] +CBN[ ,shahrivar971transportation_index :=NULL] +CBN[ ,shahrivar971food_index :=NULL] +CBN[ ,shahrivar971cigar_index :=NULL] +CBN[ ,shahrivar971hotel_index :=NULL] +CBN[ ,shahrivar971total_index :=NULL] +CBN[ ,shahrivar971house_energy_index :=NULL] +CBN[ ,shahrivar971cloth_index :=NULL] +CBN[ ,shahrivar971other_index :=NULL] +CBN[ ,spring971furniture_index :=NULL] +CBN[ ,spring971communication_index :=NULL] +CBN[ ,spring971behdasht_index :=NULL] +CBN[ ,spring971education_index :=NULL] +CBN[ ,spring971amusement_index :=NULL] +CBN[ ,spring971transportation_index :=NULL] +CBN[ ,spring971food_index :=NULL] +CBN[ ,spring971cigar_index :=NULL] +CBN[ ,spring971hotel_index :=NULL] +CBN[ ,spring971total_index :=NULL] +CBN[ ,spring971house_energy_index :=NULL] +CBN[ ,spring971cloth_index :=NULL] +CBN[ ,spring971other_index :=NULL] +CBN[ ,summer971furniture_index :=NULL] +CBN[ ,summer971communication_index :=NULL] +CBN[ ,summer971behdasht_index :=NULL] +CBN[ ,summer971education_index :=NULL] +CBN[ ,summer971amusement_index :=NULL] +CBN[ ,summer971transportation_index :=NULL] +CBN[ ,summer971food_index :=NULL] +CBN[ ,summer971cigar_index :=NULL] +CBN[ ,summer971hotel_index :=NULL] +CBN[ ,summer971total_index :=NULL] +CBN[ ,summer971house_energy_index :=NULL] +CBN[ ,summer971cloth_index :=NULL] +CBN[ ,summer971other_index :=NULL] +CBN[ ,total961furniture_index :=NULL] +CBN[ ,total961communication_index :=NULL] +CBN[ ,total961behdasht_index :=NULL] +CBN[ ,total961education_index :=NULL] +CBN[ ,total961amusement_index :=NULL] +CBN[ ,total961transportation_index :=NULL] +CBN[ ,total961food_index :=NULL] +CBN[ ,total961cigar_index :=NULL] +CBN[ ,total961hotel_index :=NULL] +CBN[ ,total961total_index :=NULL] +CBN[ ,total961house_energy_index :=NULL] +CBN[ ,total961cloth_index :=NULL] +CBN[ ,total961other_index :=NULL] + +CBN[ ,spring97 :=NULL] +CBN[ ,summer97 :=NULL] +CBN[ ,total96 :=NULL] +CBN[ ,shahrivar97 :=NULL] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + + +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] +CBNPoor[,sum(HIndivNo)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor2[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Rural<-CBN +save(CBN_Rural, file = paste0(Settings$HEISProcessedPath,"CBN_Rural","95.rda")) + +CBNPoor_Rural<-CBNPoor11 +save(CBNPoor_Rural, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Rural","95.rda")) + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/58-CBN-Urban97-1.R b/R/Archive/Other Codes/58-CBN-Urban97-1.R new file mode 100644 index 00000000..9b5da423 --- /dev/null +++ b/R/Archive/Other Codes/58-CBN-Urban97-1.R @@ -0,0 +1,3062 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(foreign) +library(haven) +#data9697 <- read_dta("D:/9697.dta") +#save(data9697,file = "data9697.rda") +load(file = "data9697.rda") +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + +CBN<-merge(CBN,data9697,by =c("ProvinceCode"),all.x=TRUE) + +CBN$FoodExpenditure<-CBN$FoodExpenditure*CBN$spring971food_index/CBN$spring971food_index +CBN$Cigar_Exp<-CBN$Cigar_Exp*CBN$spring971cigar_index/CBN$spring971cigar_index +CBN$Cloth_Exp<-CBN$Cloth_Exp*CBN$spring971cloth_index/CBN$spring971cloth_index +CBN$Amusement_Exp<-CBN$Amusement_Exp*CBN$spring971amusement_index/CBN$spring971amusement_index +CBN$Communication_Exp<-CBN$Communication_Exp*CBN$spring971communication_index/CBN$spring971communication_index +CBN$EducExpenditure<-CBN$EducExpenditure*CBN$spring971education_index/CBN$spring971education_index +CBN$Energy_Exp<-CBN$Energy_Exp*CBN$spring971house_energy_index/CBN$spring971house_energy_index +CBN$Furniture_Exp<-CBN$Furniture_Exp*CBN$spring971furniture_index/CBN$spring971furniture_index +CBN$Hotel_Exp<-CBN$Hotel_Exp*CBN$spring971hotel_index/CBN$spring971hotel_index +CBN$Behdasht_Exp<-CBN$Behdasht_Exp*CBN$spring971behdasht_index/CBN$spring971behdasht_index +CBN$Transportation_Exp<-CBN$Transportation_Exp*CBN$spring971transportation_index/CBN$spring971transportation_index +CBN$Other_Exp<-CBN$Other_Exp*CBN$spring971other_index/CBN$spring971other_index +CBN$ServiceExp<-CBN$ServiceExp*CBN$spring971house_energy_index/CBN$spring971house_energy_index +CBN$Investment_Exp<-CBN$Investment_Exp*CBN$spring97/CBN$spring97 +CBN$Medical_Exp<-CBN$Medical_Exp*CBN$spring971behdasht_index/CBN$spring971behdasht_index +CBN$Durable_Exp<-CBN$Durable_Exp*CBN$spring97/CBN$spring97 + +CBN[ ,shahrivar971furniture_index :=NULL] +CBN[ ,shahrivar971communication_index :=NULL] +CBN[ ,shahrivar971behdasht_index :=NULL] +CBN[ ,shahrivar971education_index :=NULL] +CBN[ ,shahrivar971amusement_index :=NULL] +CBN[ ,shahrivar971transportation_index :=NULL] +CBN[ ,shahrivar971food_index :=NULL] +CBN[ ,shahrivar971cigar_index :=NULL] +CBN[ ,shahrivar971hotel_index :=NULL] +CBN[ ,shahrivar971total_index :=NULL] +CBN[ ,shahrivar971house_energy_index :=NULL] +CBN[ ,shahrivar971cloth_index :=NULL] +CBN[ ,shahrivar971other_index :=NULL] +CBN[ ,spring971furniture_index :=NULL] +CBN[ ,spring971communication_index :=NULL] +CBN[ ,spring971behdasht_index :=NULL] +CBN[ ,spring971education_index :=NULL] +CBN[ ,spring971amusement_index :=NULL] +CBN[ ,spring971transportation_index :=NULL] +CBN[ ,spring971food_index :=NULL] +CBN[ ,spring971cigar_index :=NULL] +CBN[ ,spring971hotel_index :=NULL] +CBN[ ,spring971total_index :=NULL] +CBN[ ,spring971house_energy_index :=NULL] +CBN[ ,spring971cloth_index :=NULL] +CBN[ ,spring971other_index :=NULL] +CBN[ ,summer971furniture_index :=NULL] +CBN[ ,summer971communication_index :=NULL] +CBN[ ,summer971behdasht_index :=NULL] +CBN[ ,summer971education_index :=NULL] +CBN[ ,summer971amusement_index :=NULL] +CBN[ ,summer971transportation_index :=NULL] +CBN[ ,summer971food_index :=NULL] +CBN[ ,summer971cigar_index :=NULL] +CBN[ ,summer971hotel_index :=NULL] +CBN[ ,summer971total_index :=NULL] +CBN[ ,summer971house_energy_index :=NULL] +CBN[ ,summer971cloth_index :=NULL] +CBN[ ,summer971other_index :=NULL] +CBN[ ,total961furniture_index :=NULL] +CBN[ ,total961communication_index :=NULL] +CBN[ ,total961behdasht_index :=NULL] +CBN[ ,total961education_index :=NULL] +CBN[ ,total961amusement_index :=NULL] +CBN[ ,total961transportation_index :=NULL] +CBN[ ,total961food_index :=NULL] +CBN[ ,total961cigar_index :=NULL] +CBN[ ,total961hotel_index :=NULL] +CBN[ ,total961total_index :=NULL] +CBN[ ,total961house_energy_index :=NULL] +CBN[ ,total961cloth_index :=NULL] +CBN[ ,total961other_index :=NULL] +CBN[ ,spring951furniture_index :=NULL] +CBN[ ,spring951communication_index :=NULL] +CBN[ ,spring951behdasht_index :=NULL] +CBN[ ,spring951education_index :=NULL] +CBN[ ,spring951amusement_index :=NULL] +CBN[ ,spring951transportation_index :=NULL] +CBN[ ,spring951food_index :=NULL] +CBN[ ,spring951cigar_index :=NULL] +CBN[ ,spring951hotel_index :=NULL] +CBN[ ,spring951total_index :=NULL] +CBN[ ,spring951house_energy_index :=NULL] +CBN[ ,spring951cloth_index :=NULL] +CBN[ ,spring951other_index :=NULL] +CBN[ ,summer951furniture_index :=NULL] +CBN[ ,summer951communication_index :=NULL] +CBN[ ,summer951behdasht_index :=NULL] +CBN[ ,summer951education_index :=NULL] +CBN[ ,summer951amusement_index :=NULL] +CBN[ ,summer951transportation_index :=NULL] +CBN[ ,summer951food_index :=NULL] +CBN[ ,summer951cigar_index :=NULL] +CBN[ ,summer951hotel_index :=NULL] +CBN[ ,summer951total_index :=NULL] +CBN[ ,summer951house_energy_index :=NULL] +CBN[ ,summer951cloth_index :=NULL] +CBN[ ,summer951other_index :=NULL] + +CBN[ ,spring95 :=NULL] +CBN[ ,summer95 :=NULL] +CBN[ ,spring97 :=NULL] +CBN[ ,summer97 :=NULL] +CBN[ ,total96 :=NULL] +CBN[ ,shahrivar97 :=NULL] + + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Size*Weight),by=.(cluster)][order(cluster)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(cluster)][order(cluster)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Urban<-CBN +save(CBN_Urban, file = paste0(Settings$HEISProcessedPath,"CBN_Urban","95.rda")) + +CBNPoor_Urban<-CBNPoor11 +save(CBNPoor_Urban, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Urban","95.rda")) + + +endtime <- proc.time() + + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/58-CBN-Urban97-2.R b/R/Archive/Other Codes/58-CBN-Urban97-2.R new file mode 100644 index 00000000..21040531 --- /dev/null +++ b/R/Archive/Other Codes/58-CBN-Urban97-2.R @@ -0,0 +1,3036 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(foreign) +library(haven) + +load(file = "data9697.rda") +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + + +CBN<-merge(CBN,data9697,by =c("ProvinceCode"),all.x=TRUE) + +CBN$FoodExpenditure<-CBN$FoodExpenditure*CBN$summer971food_index/100 +CBN$Cigar_Exp<-CBN$Cigar_Exp*CBN$summer971cigar_index/100 +CBN$Cloth_Exp<-CBN$Cloth_Exp*CBN$summer971cloth_index/100 +CBN$Amusement_Exp<-CBN$Amusement_Exp*CBN$summer971amusement_index/100 +CBN$Communication_Exp<-CBN$Communication_Exp*CBN$summer971communication_index/100 +CBN$EducExpenditure<-CBN$EducExpenditure*CBN$summer971education_index/100 +CBN$Energy_Exp<-CBN$Energy_Exp*CBN$summer971house_energy_index/100 +CBN$Furniture_Exp<-CBN$Furniture_Exp*CBN$summer971furniture_index/100 +CBN$Hotel_Exp<-CBN$Hotel_Exp*CBN$summer971hotel_index/100 +CBN$Behdasht_Exp<-CBN$Behdasht_Exp*CBN$summer971behdasht_index/100 +CBN$Transportation_Exp<-CBN$Transportation_Exp*CBN$summer971transportation_index/100 +CBN$Other_Exp<-CBN$Other_Exp*CBN$summer971other_index/100 +CBN$ServiceExp<-CBN$ServiceExp*CBN$summer971house_energy_index/100 +CBN$Investment_Exp<-CBN$Investment_Exp*CBN$summer97/100 +CBN$Medical_Exp<-CBN$Medical_Exp*CBN$summer971behdasht_index/100 +CBN$Durable_Exp<-CBN$Durable_Exp*CBN$summer97/100 + +CBN[ ,shahrivar971furniture_index :=NULL] +CBN[ ,shahrivar971communication_index :=NULL] +CBN[ ,shahrivar971behdasht_index :=NULL] +CBN[ ,shahrivar971education_index :=NULL] +CBN[ ,shahrivar971amusement_index :=NULL] +CBN[ ,shahrivar971transportation_index :=NULL] +CBN[ ,shahrivar971food_index :=NULL] +CBN[ ,shahrivar971cigar_index :=NULL] +CBN[ ,shahrivar971hotel_index :=NULL] +CBN[ ,shahrivar971total_index :=NULL] +CBN[ ,shahrivar971house_energy_index :=NULL] +CBN[ ,shahrivar971cloth_index :=NULL] +CBN[ ,shahrivar971other_index :=NULL] +CBN[ ,spring971furniture_index :=NULL] +CBN[ ,spring971communication_index :=NULL] +CBN[ ,spring971behdasht_index :=NULL] +CBN[ ,spring971education_index :=NULL] +CBN[ ,spring971amusement_index :=NULL] +CBN[ ,spring971transportation_index :=NULL] +CBN[ ,spring971food_index :=NULL] +CBN[ ,spring971cigar_index :=NULL] +CBN[ ,spring971hotel_index :=NULL] +CBN[ ,spring971total_index :=NULL] +CBN[ ,spring971house_energy_index :=NULL] +CBN[ ,spring971cloth_index :=NULL] +CBN[ ,spring971other_index :=NULL] +CBN[ ,summer971furniture_index :=NULL] +CBN[ ,summer971communication_index :=NULL] +CBN[ ,summer971behdasht_index :=NULL] +CBN[ ,summer971education_index :=NULL] +CBN[ ,summer971amusement_index :=NULL] +CBN[ ,summer971transportation_index :=NULL] +CBN[ ,summer971food_index :=NULL] +CBN[ ,summer971cigar_index :=NULL] +CBN[ ,summer971hotel_index :=NULL] +CBN[ ,summer971total_index :=NULL] +CBN[ ,summer971house_energy_index :=NULL] +CBN[ ,summer971cloth_index :=NULL] +CBN[ ,summer971other_index :=NULL] +CBN[ ,total961furniture_index :=NULL] +CBN[ ,total961communication_index :=NULL] +CBN[ ,total961behdasht_index :=NULL] +CBN[ ,total961education_index :=NULL] +CBN[ ,total961amusement_index :=NULL] +CBN[ ,total961transportation_index :=NULL] +CBN[ ,total961food_index :=NULL] +CBN[ ,total961cigar_index :=NULL] +CBN[ ,total961hotel_index :=NULL] +CBN[ ,total961total_index :=NULL] +CBN[ ,total961house_energy_index :=NULL] +CBN[ ,total961cloth_index :=NULL] +CBN[ ,total961other_index :=NULL] + +CBN[ ,spring97 :=NULL] +CBN[ ,summer97 :=NULL] +CBN[ ,total96 :=NULL] +CBN[ ,shahrivar97 :=NULL] + + + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Size*Weight),by=.(cluster)][order(cluster)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(cluster)][order(cluster)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Urban<-CBN +save(CBN_Urban, file = paste0(Settings$HEISProcessedPath,"CBN_Urban","95.rda")) + +CBNPoor_Urban<-CBNPoor11 +save(CBNPoor_Urban, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Urban","95.rda")) + + +endtime <- proc.time() + + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN Rural-95.R b/R/Archive/Other Codes/60-CBN Rural-95.R new file mode 100644 index 00000000..4cd7f20e --- /dev/null +++ b/R/Archive/Other Codes/60-CBN Rural-95.R @@ -0,0 +1,3015 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] +CBNPoor[,sum(HIndivNo)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor2[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] +CBNPoor11[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor11[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Rural<-CBN +save(CBN_Rural, file = paste0(Settings$HEISProcessedPath,"CBN_Rural","95.rda")) + +CBNPoor_Rural<-CBNPoor11 +save(CBNPoor_Rural, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Rural","95.rda")) + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN Urban-95.R b/R/Archive/Other Codes/60-CBN Urban-95.R new file mode 100644 index 00000000..ef87e461 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN Urban-95.R @@ -0,0 +1,3027 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] + + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Size*Weight),by=.(cluster)][order(cluster)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(cluster)][order(cluster)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] +CBNPoor11[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor11[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Urban<-CBN +save(CBN_Urban, file = paste0(Settings$HEISProcessedPath,"CBN_Urban","95.rda")) + +CBNPoor_Urban<-CBNPoor11 +save(CBNPoor_Urban, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Urban","95.rda")) + + +#utils::View(CBN) +for (col in c("GhandPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("HoboobatPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("RoghanPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("BerenjPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("NanPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("GooshtPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MorghPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MahiPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("ShirPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MastPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("PanirPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("TokhmemorghPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MivePrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("SabziPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MakarooniPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("SibzaminiPrice")) CBNPoor11[is.na(get(col)), (col) := 0] + +CBNPoor11<-CBNPoor11[,x:=GhandPrice*Ghandgram+HoboobatPrice*Hoboobatgram+RoghanPrice*Roghangram+BerenjPrice*Berenjgram+NanPrice*Nangram+GooshtPrice*Gooshtgram+MorghPrice*Morghgram+MahiPrice*Mahigram+ShirPrice*Shirgram+MastPrice*Mastgram+PanirPrice*Panirgram+TokhmemorghPrice*Tokhmemorghgram+MivePrice*Mivegram+SabziPrice*Sabzigram+MakarooniPrice*Makaroonigram+SibzaminiPrice*Sibzaminigram] +CBNPoor11[,weighted.mean((GhandPrice*Ghandgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((HoboobatPrice*Hoboobatgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((RoghanPrice*Roghangram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((BerenjPrice*Berenjgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((NanPrice*Nangram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((GooshtPrice*Gooshtgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MorghPrice*Morghgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MahiPrice*Mahigram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((ShirPrice*Shirgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MastPrice*Mastgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((PanirPrice*Panirgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((TokhmemorghPrice*Tokhmemorghgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MivePrice*Mivegram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((SabziPrice*Sabzigram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MakarooniPrice*Makaroonigram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((SibzaminiPrice*Sibzaminigram)/x,Weight),cluster==4] + + +for (col in c("GhandPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("HoboobatPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("RoghanPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("BerenjPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("NanPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("GooshtPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MorghPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MahiPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("ShirPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MastPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("PanirPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("TokhmemorghPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MivePrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("SabziPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MakarooniPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("SibzaminiPrice")) CBN[is.na(get(col)), (col) := 0] + +CBN<-CBN[,x:=GhandPrice*Ghandgram+HoboobatPrice*Hoboobatgram+RoghanPrice*Roghangram+BerenjPrice*Berenjgram+NanPrice*Nangram+GooshtPrice*Gooshtgram+MorghPrice*Morghgram+MahiPrice*Mahigram+ShirPrice*Shirgram+MastPrice*Mastgram+PanirPrice*Panirgram+TokhmemorghPrice*Tokhmemorghgram+MivePrice*Mivegram+SabziPrice*Sabzigram+MakarooniPrice*Makaroonigram+SibzaminiPrice*Sibzaminigram] +CBN[,weighted.mean((GhandPrice*Ghandgram)/x,Weight)*103.5] +CBN[,weighted.mean((HoboobatPrice*Hoboobatgram)/x,Weight)*117] +CBN[,weighted.mean((RoghanPrice*Roghangram)/x,Weight)*111.5] +CBN[,weighted.mean((BerenjPrice*Berenjgram)/x,Weight)*114.3] +CBN[,weighted.mean((NanPrice*Nangram)/x,Weight)*110.8] +CBN[,weighted.mean((GooshtPrice*Gooshtgram)/x,Weight)*123.5] +CBN[,weighted.mean((MorghPrice*Morghgram)/x,Weight)*114.1] +CBN[,weighted.mean((MahiPrice*Mahigram)/x,Weight)*107.6] +CBN[,weighted.mean((ShirPrice*Shirgram)/x,Weight)*103.4] +CBN[,weighted.mean((MastPrice*Mastgram)/x,Weight)*106.1] +CBN[,weighted.mean((PanirPrice*Panirgram)/x,Weight)*106.8] +CBN[,weighted.mean((TokhmemorghPrice*Tokhmemorghgram)/x,Weight)*125.9] +CBN[,weighted.mean((MivePrice*Mivegram)/x,Weight)*97.1] +CBN[,weighted.mean((SabziPrice*Sabzigram)/x,Weight)*109.9] +CBN[,weighted.mean((MakarooniPrice*Makaroonigram)/x,Weight)*101.9] +CBN[,weighted.mean((SibzaminiPrice*Sibzaminigram)/x,Weight)*119.7] + + +endtime <- proc.time() + + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN84-Urban.R b/R/Archive/Other Codes/60-CBN84-Urban.R new file mode 100644 index 00000000..f7adeb8e --- /dev/null +++ b/R/Archive/Other Codes/60-CBN84-Urban.R @@ -0,0 +1,2878 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","84","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","84","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","84","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN85-Urban.R b/R/Archive/Other Codes/60-CBN85-Urban.R new file mode 100644 index 00000000..72afca94 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN85-Urban.R @@ -0,0 +1,2878 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","85","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","85","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","85","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN86-Urban.R b/R/Archive/Other Codes/60-CBN86-Urban.R new file mode 100644 index 00000000..2e609468 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN86-Urban.R @@ -0,0 +1,2878 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","86","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","86","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","86","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN88-Rural.R b/R/Archive/Other Codes/60-CBN88-Rural.R new file mode 100644 index 00000000..fe927d17 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN88-Rural.R @@ -0,0 +1,2938 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","88","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","88","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","88","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:28) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:28, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per<1.1*Food_Povertyline5_9 & FoodExpenditure_Per>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN89-Rural.R b/R/Archive/Other Codes/60-CBN89-Rural.R new file mode 100644 index 00000000..7000ef53 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN89-Rural.R @@ -0,0 +1,2938 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","89","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","89","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","89","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:28) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:28, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per<1.1*Food_Povertyline5_9 & FoodExpenditure_Per>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN90-Rural.R b/R/Archive/Other Codes/60-CBN90-Rural.R new file mode 100644 index 00000000..2da6df66 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN90-Rural.R @@ -0,0 +1,2938 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","90","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","90","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per<1.1*Food_Povertyline5_9 & FoodExpenditure_Per>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN90-Urban.R b/R/Archive/Other Codes/60-CBN90-Urban.R new file mode 100644 index 00000000..0d4e3a3e --- /dev/null +++ b/R/Archive/Other Codes/60-CBN90-Urban.R @@ -0,0 +1,2878 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","90","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","90","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","90","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("BerenjPrice")) dt2[is.nan(get(col)), (col) := 50000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(192:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN91-Rural.R b/R/Archive/Other Codes/60-CBN91-Rural.R new file mode 100644 index 00000000..ad4a9ecd --- /dev/null +++ b/R/Archive/Other Codes/60-CBN91-Rural.R @@ -0,0 +1,2938 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","91","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","91","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per<1.1*Food_Povertyline5_9 & FoodExpenditure_Per>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN91-Urban.R b/R/Archive/Other Codes/60-CBN91-Urban.R new file mode 100644 index 00000000..52efd072 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN91-Urban.R @@ -0,0 +1,2882 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(haven) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","91","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","91","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","91","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +shahrestan91 <- read_dta("D:/R/shahrestan91.dta") +CBN<-merge(CBN,shahrestan91,by =c("HHID"),all.x=TRUE) +tt<-CBN[,.(HHID,ProvinceCode,ShahrestanCode)] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==23] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2305,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("BerenjPrice")) dt2[is.nan(get(col)), (col) := 50000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#dt2<-dt2[-c(31,39),] +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per<1.1*Food_Povertyline1_9 & FoodExpenditure_Per>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per<1.1*Food_Povertyline2_9 & FoodExpenditure_Per>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per<1.1*Food_Povertyline3_9 & FoodExpenditure_Per>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per<1.1*Food_Povertyline4_9 & FoodExpenditure_Per>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN92-Rural.R b/R/Archive/Other Codes/60-CBN92-Rural.R new file mode 100644 index 00000000..59a572c0 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN92-Rural.R @@ -0,0 +1,2938 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","92","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","92","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN92-Urban.R b/R/Archive/Other Codes/60-CBN92-Urban.R new file mode 100644 index 00000000..0a4d6c60 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN92-Urban.R @@ -0,0 +1,2878 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","92","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","92","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","92","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("BerenjPrice")) dt2[is.nan(get(col)), (col) := 50000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(192:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN93-Rural.R b/R/Archive/Other Codes/60-CBN93-Rural.R new file mode 100644 index 00000000..726a1059 --- /dev/null +++ b/R/Archive/Other Codes/60-CBN93-Rural.R @@ -0,0 +1,2938 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","93","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","93","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN93-Urban.R b/R/Archive/Other Codes/60-CBN93-Urban.R new file mode 100644 index 00000000..3d99b30c --- /dev/null +++ b/R/Archive/Other Codes/60-CBN93-Urban.R @@ -0,0 +1,2878 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","93","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","93","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","93","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("BerenjPrice")) dt2[is.nan(get(col)), (col) := 50000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(192:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN94-Rural.R b/R/Archive/Other Codes/60-CBN94-Rural.R new file mode 100644 index 00000000..41e2e41d --- /dev/null +++ b/R/Archive/Other Codes/60-CBN94-Rural.R @@ -0,0 +1,2938 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","94","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","94","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/60-CBN94-Urban.R b/R/Archive/Other Codes/60-CBN94-Urban.R new file mode 100644 index 00000000..86cbd25d --- /dev/null +++ b/R/Archive/Other Codes/60-CBN94-Urban.R @@ -0,0 +1,2878 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","94","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","94","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","94","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("BerenjPrice")) dt2[is.nan(get(col)), (col) := 50000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:3,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(192:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/62-FEI Poverty line for each province.R b/R/Archive/Other Codes/62-FEI Poverty line for each province.R new file mode 100644 index 00000000..42f7fa7a --- /dev/null +++ b/R/Archive/Other Codes/62-FEI Poverty line for each province.R @@ -0,0 +1,292 @@ +# 26- Additional calculations for clustering.R +# +# 26-Total_Exp.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Total =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(reldist) +library(Hmisc) +library(dplyr) +library(data.table) + + +# Calories +MinCalories <- 2100 +MinCalories2 <- MinCalories^2 +library(data.table) + +load(file = paste0(Settings$HEISProcessedPath,"Y","95","MyDataRural.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y","95","MyDataUrban.rda")) + + +#Sort by Province and Expenditure data +Rur <- MyDataRural[,.(Percentile=as.integer(Percentile),Per_Daily_Calories,Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable,ProvinceCode,Weight)] +Urb <- MyDataUrban[,.(Percentile=as.integer(Percentile),Per_Daily_Calories,Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable,ProvinceCode,Weight)] + +Rur<- Rur[order(ProvinceCode,Total_Exp_Month_Per_nondurable)] +Urb<- Urb[order(ProvinceCode,Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +Rur$cumWeightProv <-ave(Rur$Weight, Rur$ProvinceCode, FUN=cumsum) +Urb$cumWeightProv <-ave(Urb$Weight, Urb$ProvinceCode, FUN=cumsum) + +Rur$rx<-ave(Rur$cumWeight, by=list(Rur$ProvinceCode), FUN=max) +Urb$ux<-ave(Urb$cumWeight, by=list(Urb$ProvinceCode), FUN=max) + +#Calculate percentiles by weights for each provinces +Rur<- Rur[, ProvincePercentile := Rur$cumWeightProv/Rur$rx] +Rur<- Rur[, ProvincePercentile := ProvincePercentile*100] +Rur<- Rur[, ProvincePercentile := ceiling(ProvincePercentile)] + +Urb<- Urb[, ProvincePercentile := Urb$cumWeightProv/Urb$ux] +Urb<- Urb[, ProvincePercentile := ProvincePercentile*100] +Urb<- Urb[, ProvincePercentile := ceiling(ProvincePercentile)] + +######### calculate Rural Pov Line ######### +d <- Rur[,.(Percentile=as.integer(Percentile),Per_Daily_Calories,Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable,ProvinceCode,Weight,cumWeightProv,ProvincePercentile)] +setnames(d,c("pct","cal","exp","ndx","prov","w","cumw","provpct")) +d2 <- d [provpct<86] +#plot(cal~exp,data=d) +#plot(cal~exp,data=d2) +#plot(log(cal)~log(exp),data=d) +#plot(log(cal)~log(exp),data=d2) + +d$cal2<-d$cal^2 +d2$cal2<-d2$cal^2 + +load(file="dt2.rda") +Rur<-merge(Rur,dt2,by=c("ProvinceCode"),all.x = TRUE) + +dx <- d[,lapply(.SD, mean, na.rm=TRUE),by=.(provpct,prov)] +dx2 <- d2[,lapply(.SD, mean, na.rm=TRUE),by=.(provpct,prov)] + +###########Rural-all########### + +#Nonlog +for(ostan in 0:30){ + nam <- paste0("Rur",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,d[prov==ostan])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",ostan) + assign(nam2,nam3) +} +#log +d<-d[cal!=0] +for(ostan in 0:30){ + nam <- paste0("Rur",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model2 <- lm(log(exp) ~ log(cal), weights = w, data=assign(nam,d[prov==ostan])) + summary(model2) + nam3 <- predict(object = model2, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural2PovLine",ostan) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +#Nonlog-85 percent +for(ostan in 0:30){ + nam <- paste0("Rur",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model3 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,d2[prov==ostan])) + summary(model3) + nam3 <- predict(object = model3, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural3PovLine",ostan) + assign(nam2,nam3) +} +#log-85 percent +d2<-d2[cal!=0] +for(ostan in 0:30){ + nam <- paste0("Rur",ostan) + assign(nam,d2[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model4 <- lm(log(exp) ~ log(cal), weights = w, data=assign(nam,d2[prov==ostan])) + summary(model4) + nam3 <- predict(object = model4, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural4PovLine",ostan) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +###########Rural-percentiles########### +#Nonlog +for(ostan in 0:30){ + nam <- paste0("Rur",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,dx[prov==ostan])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",ostan) + assign(nam2,nam3) +} +#log +dx<-dx[cal!=0] +for(ostan in 0:30){ + nam <- paste0("Rur",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model2 <- lm(log(exp) ~ log(cal), weights = w, data=assign(nam,dx[prov==ostan])) + summary(model2) + nam3 <- predict(object = model2, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural2PovLine",ostan) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +#Nonlog-85 percent +for(ostan in 0:30){ + nam <- paste0("Rur",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model3 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,dx2[prov==ostan])) + summary(model3) + nam3 <- predict(object = model3, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural3PovLine",ostan) + assign(nam2,nam3) +} +#log-85 percent +dx2<-dx2[cal!=0] +for(ostan in 0:30){ + nam <- paste0("Rur",ostan) + assign(nam,d2[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model4 <- lm(log(exp) ~ log(cal), weights = w, data=assign(nam,dx2[prov==ostan])) + summary(model4) + nam3 <- predict(object = model4, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural4PovLine",ostan) + nam3<-exp(nam3) + assign(nam2,nam3) +} +######### calculate Urban Pov Line ######### + +d <- Urb[,.(Percentile=as.integer(Percentile),Per_Daily_Calories,Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable,ProvinceCode,Weight,cumWeightProv,ProvincePercentile)] +setnames(d,c("pct","cal","exp","ndx","prov","w","cumw","provpct")) +d2 <- d [provpct<86] +#plot(cal~exp,data=d) +#plot(cal~exp,data=d2) +#plot(log(cal)~log(exp),data=d) +#plot(log(cal)~log(exp),data=d2) + +d$cal2<-d$cal^2 +d2$cal2<-d2$cal^2 + +dx <- d[,lapply(.SD, mean, na.rm=TRUE),by=.(provpct,prov)] +dx2 <- d2[,lapply(.SD, mean, na.rm=TRUE),by=.(provpct,prov)] + +############Urban-all############ +#Nonlog +for(ostan in 0:30){ + nam <- paste0("Urb",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,d[prov==ostan])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",ostan) + assign(nam2,nam3) +} +#log +d<-d[cal!=0] +for(ostan in 0:30){ + nam <- paste0("Urb",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model2 <- lm(log(exp) ~ log(cal), weights = w, data=assign(nam,d[prov==ostan])) + summary(model2) + nam3 <- predict(object = model2, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban2PovLine",ostan) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +#Nonlog-85 percent +for(ostan in 0:30){ + nam <- paste0("Urb",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model3 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,d2[prov==ostan])) + summary(model3) + nam3 <- predict(object = model3, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban3PovLine",ostan) + assign(nam2,nam3) +} +#log-85 percent +d2<-d2[cal!=0] +for(ostan in 0:30){ + nam <- paste0("Urb",ostan) + assign(nam,d2[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model4 <- lm(log(exp) ~ log(cal), weights = w, data=assign(nam,d2[prov==ostan])) + summary(model4) + nam3 <- predict(object = model4, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban4PovLine",ostan) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +############Urban-Percentiles############ +#Nonlog +for(ostan in 0:30){ + nam <- paste0("Urb",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,dx[prov==ostan])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",ostan) + assign(nam2,nam3) +} +#log +dx<-dx[cal!=0] +for(ostan in 0:30){ + nam <- paste0("Urb",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model2 <- lm(log(exp) ~ log(cal), weights = w, data=assign(nam,dx[prov==ostan])) + summary(model2) + nam3 <- predict(object = model2, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban2PovLine",ostan) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +#Nonlog-85 percent +for(ostan in 0:30){ + nam <- paste0("Urb",ostan) + assign(nam,d[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model3 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,dx2[prov==ostan])) + summary(model3) + nam3 <- predict(object = model3, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban3PovLine",ostan) + assign(nam2,nam3) +} +#log-85 percent +dx2<-dx2[cal!=0] +for(ostan in 0:30){ + nam <- paste0("Urb",ostan) + assign(nam,d2[prov==ostan]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model4 <- lm(log(exp) ~ log(cal), weights = w, data=assign(nam,dx2[prov==ostan])) + summary(model4) + nam3 <- predict(object = model4, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban4PovLine",ostan) + nam3<-exp(nam3) + assign(nam2,nam3) +} \ No newline at end of file diff --git a/R/Archive/Other Codes/62-FEI-Rural.R b/R/Archive/Other Codes/62-FEI-Rural.R new file mode 100644 index 00000000..39751a5e --- /dev/null +++ b/R/Archive/Other Codes/62-FEI-Rural.R @@ -0,0 +1,187 @@ +# FEI method +# +# +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ FEI method =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(reldist) +library(Hmisc) +library(dplyr) +library(data.table) +library(stringr) + + +# Calories +MinCalories <- 2100 +MinCalories2 <- MinCalories^2 + + +load(file = paste0(Settings$HEISProcessedPath,"Y","95","MyDataRural.rda")) + + + +load(file="dt5Rural.rda") +MyDataRural<-merge(MyDataRural,dt2,by =c("ProvinceCode"),all.x=TRUE) + +#Sort by Province and Expenditure data +Rur <- MyDataRural[,.(Percentile=as.integer(Percentile),Per_Daily_Calories,Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable,ProvinceCode,Weight, cluster)] +Rur<- Rur[order(cluster,Total_Exp_Month_Per_nondurable)] +Rur<-Rur[Per_Daily_Calories!=0] + +#Calculate cumulative weights +Rur$cumWeightcluster <-ave(Rur$Weight, Rur$cluster, FUN=cumsum) + +Rur$ux<-ave(Rur$cumWeight, by=list(Rur$cluster), FUN=max) + +#Calculate percentiles by weights for each provinces +Rur<- Rur[, clusterPercentile := Rur$cumWeightcluster/Rur$ux] +Rur<- Rur[, clusterPercentile := clusterPercentile*100] +Rur<- Rur[, clusterPercentile := ceiling(clusterPercentile)] + +######### calculate Rural Pov Line ######### +d <- Rur +setnames(d,c("pct","cal","exp","ndx","prov","w","cluster","cumw","ux","clusterpct")) +d2 <- d [clusterpct<86] +#plot(cal~exp,data=d) +#plot(cal~exp,data=dx2) +#plot(log(cal)~log(exp),data=d) +#plot(log(cal)~log(exp),data=d2) + +d$cal2<-d$cal^2 +d2$cal2<-d2$cal^2 + +dx <- d[,lapply(.SD, mean, na.rm=TRUE),by=.(clusterpct,cluster)] +dx2 <- d2[,lapply(.SD, mean, na.rm=TRUE),by=.(clusterpct,cluster)] + +############Rural-all############ +#Nonlog-d +for(clus in 1:5){ + nam <- paste0("Rur",clus) + assign(nam,d[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,d[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",clus) + assign(nam2,nam3) +} +summary(model1) +#log-d +for(clus in 1:5){ + nam <- paste0("Rur",clus) + assign(nam,d[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(log(exp) ~ log(cal) , weights = w, data=assign(nam,d[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",clus) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +#Nonlog-d2 +for(clus in 1:5){ + nam <- paste0("Rur",clus) + assign(nam,d2[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,d2[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",clus) + assign(nam2,nam3) +} + +#log-d2 +for(clus in 1:5){ + nam <- paste0("Rur",clus) + assign(nam,d2[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(log(exp) ~ log(cal) , weights = w, data=assign(nam,d2[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",clus) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +######### calculate Rural Pov Line- Percentile ######### +d <- Rur +setnames(d,c("pct","cal","exp","ndx","prov","w","cluster","cumw","ux","clusterpct")) +d2 <- d [clusterpct<86] +#plot(cal~exp,data=d) +#plot(cal~exp,data=d2) +#plot(log(cal)~log(exp),data=d) +#plot(log(cal)~log(exp),data=d2) + +d$cal2<-d$cal^2 +d2$cal2<-d2$cal^2 + +dx <- d[,lapply(.SD, mean, na.rm=TRUE),by=.(clusterpct,cluster)] +dx2 <- d2[,lapply(.SD, mean, na.rm=TRUE),by=.(clusterpct,cluster)] + +############Rural-all############ +#Nonlog-d +for(clus in 1:5){ + nam <- paste0("Rur",clus) + assign(nam,dx[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,dx[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",clus) + assign(nam2,nam3) +} + +#log-d +for(clus in 1:5){ + nam <- paste0("Rur",clus) + assign(nam,dx[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(log(exp) ~ log(cal) , weights = w, data=assign(nam,dx[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",clus) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +#Nonlog-d2 +for(clus in 1:5){ + nam <- paste0("Rur",clus) + assign(nam,dx2[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,dx2[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",clus) + assign(nam2,nam3) +} + +#log-d2 +for(clus in 1:5){ + nam <- paste0("Rur",clus) + assign(nam,dx2[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(log(exp) ~ log(cal) , weights = w, data=assign(nam,dx2[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Rural1PovLine",clus) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/Other Codes/62-FEI-Urban.R b/R/Archive/Other Codes/62-FEI-Urban.R new file mode 100644 index 00000000..bcf25db1 --- /dev/null +++ b/R/Archive/Other Codes/62-FEI-Urban.R @@ -0,0 +1,228 @@ +# FEI method +# +# +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ FEI method =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(reldist) +library(Hmisc) +library(dplyr) +library(data.table) +library(stringr) + + +# Calories +MinCalories <- 2300 +MinCalories2 <- MinCalories^2 + + +load(file = paste0(Settings$HEISProcessedPath,"Y","95","MyDataUrban.rda")) + +#Seperate big cities +MyDataUrban[,sum(Weight*Size),by=ProvinceCode][order(V1)] +MyDataUrban[,HHIDs:=as.character(HHID)] +MyDataUrban[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +MyDataUrban[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +MyDataUrbanTehran<-MyDataUrban[ProvinceCode==23] +MyDataUrbanTehran[,sum(Weight*Size),by=ShahrestanCode] +MyDataUrbanTabriz<-MyDataUrban[ProvinceCode==3] +MyDataUrbanTabriz[,sum(Weight*Size),by=ShahrestanCode] +MyDataUrbanAhvaz<-MyDataUrban[ProvinceCode==6] +MyDataUrbanAhvaz[,sum(Weight*Size),by=ShahrestanCode] +MyDataUrbanShiraz<-MyDataUrban[ProvinceCode==7] +MyDataUrbanShiraz[,sum(Weight*Size),by=ShahrestanCode] +MyDataUrbanMashhad<-MyDataUrban[ProvinceCode==9] +MyDataUrbanMashhad[,sum(Weight*Size),by=ShahrestanCode] +MyDataUrbanEsfahan<-MyDataUrban[ProvinceCode==10] +MyDataUrbanEsfahan[,sum(Weight*Size),by=ShahrestanCode] +MyDataUrbanKaraj<-MyDataUrban[ProvinceCode==30] +MyDataUrbanKaraj[,sum(Weight*Size),by=ShahrestanCode] +MyDataUrbanKermanshah<-MyDataUrban[ProvinceCode==5] +MyDataUrbanKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +MyDataUrban<-MyDataUrban[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +MyDataUrban<-MyDataUrban[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +MyDataUrban<-MyDataUrban[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +MyDataUrban<-MyDataUrban[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +MyDataUrban<-MyDataUrban[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +MyDataUrban<-MyDataUrban[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +MyDataUrban<-MyDataUrban[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +MyDataUrban<-MyDataUrban[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +MyDataUrban<-MyDataUrban[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + + +load(file="dt4Urban.rda") +MyDataUrban<-merge(MyDataUrban,dt2,by =c("ProvinceCode"),all.x=TRUE) + +#Sort by Province and Expenditure data +Urb <- MyDataUrban[,.(Percentile=as.integer(Percentile),Per_Daily_Calories,Total_Exp_Month_Per,Total_Exp_Month_Per_nondurable,ProvinceCode,Weight, cluster)] +Urb<- Urb[order(cluster,Total_Exp_Month_Per_nondurable)] +Urb<-Urb[Per_Daily_Calories!=0] + +#Calculate cumulative weights +Urb$cumWeightcluster <-ave(Urb$Weight, Urb$cluster, FUN=cumsum) + +Urb$ux<-ave(Urb$cumWeight, by=list(Urb$cluster), FUN=max) + +#Calculate percentiles by weights for each provinces +Urb<- Urb[, clusterPercentile := Urb$cumWeightcluster/Urb$ux] +Urb<- Urb[, clusterPercentile := clusterPercentile*100] +Urb<- Urb[, clusterPercentile := ceiling(clusterPercentile)] + +######### calculate Urban Pov Line ######### +d <- Urb +setnames(d,c("pct","cal","exp","ndx","prov","w","cluster","cumw","ux","clusterpct")) +d2 <- d [clusterpct<86] +#plot(cal~exp,data=d) +#plot(cal~exp,data=dx2) +#plot(log(cal)~log(exp),data=d) +#plot(log(cal)~log(exp),data=d2) + +d$cal2<-d$cal^2 +d2$cal2<-d2$cal^2 + +dx <- d[,lapply(.SD, mean, na.rm=TRUE),by=.(clusterpct,cluster)] +dx2 <- d2[,lapply(.SD, mean, na.rm=TRUE),by=.(clusterpct,cluster)] + +############Urban-all############ +#Nonlog-d +for(clus in 1:4){ + nam <- paste0("Urb",clus) + assign(nam,d[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,d[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",clus) + assign(nam2,nam3) +} +summary(model1) +MyDataUrbanCluster<-MyDataUrban[cluster==1] +MyDataUrbanCluster[,Poor:=ifelse(Total_Exp_Month_Per_nondurable < Urban1PovLine1,1,0)] +MyDataUrbanCluster[,sum(HIndivNo),by=cluster][order(cluster)] +MyDataUrbanCluster[,sum(Poor),by=cluster][order(cluster)] +MyDataUrban[,sum(Weight),by=cluster][order(cluster)] + +#log-d +for(clus in 1:4){ + nam <- paste0("Urb",clus) + assign(nam,d[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(log(exp) ~ log(cal) , weights = w, data=assign(nam,d[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",clus) + nam3<-exp(nam3) + assign(nam2,nam3) +} +summary(model1) +#Nonlog-d2 +for(clus in 1:4){ + nam <- paste0("Urb",clus) + assign(nam,d2[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,d2[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",clus) + assign(nam2,nam3) +} +summary(model1) +#log-d2 +for(clus in 1:4){ + nam <- paste0("Urb",clus) + assign(nam,d2[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(log(exp) ~ log(cal) , weights = w, data=assign(nam,d2[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",clus) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +######### calculate Urban Pov Line- Percentile ######### +d <- Urb +setnames(d,c("pct","cal","exp","ndx","prov","w","cluster","cumw","ux","clusterpct")) +d2 <- d [clusterpct<86] +#plot(cal~exp,data=d) +#plot(cal~exp,data=d2) +#plot(log(cal)~log(exp),data=d) +#plot(log(cal)~log(exp),data=d2) + +d$cal2<-d$cal^2 +d2$cal2<-d2$cal^2 + +dx <- d[,lapply(.SD, mean, na.rm=TRUE),by=.(clusterpct,cluster)] +dx2 <- d2[,lapply(.SD, mean, na.rm=TRUE),by=.(clusterpct,cluster)] + +############Urban-all############ +#Nonlog-d +for(clus in 1:4){ + nam <- paste0("Urb",clus) + assign(nam,dx[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,dx[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",clus) + assign(nam2,nam3) +} + +#log-d +for(clus in 1:4){ + nam <- paste0("Urb",clus) + assign(nam,dx[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(log(exp) ~ log(cal) , weights = w, data=assign(nam,dx[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",clus) + nam3<-exp(nam3) + assign(nam2,nam3) +} + +#Nonlog-d2 +for(clus in 1:4){ + nam <- paste0("Urb",clus) + assign(nam,dx2[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(exp ~ cal + cal2 , weights = w, data=assign(nam,dx2[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",clus) + assign(nam2,nam3) +} + +#log-d2 +for(clus in 1:4){ + nam <- paste0("Urb",clus) + assign(nam,dx2[cluster==clus]) + # save(list=ls(pattern = nam),file = paste0(Settings$HEISProcessedPath,nam,".rda")) + model1 <- lm(log(exp) ~ log(cal) , weights = w, data=assign(nam,dx2[cluster==clus])) + summary(model1) + nam3 <- predict(object = model1, newdata = data.table(pct=NA,cal=MinCalories,cal2=MinCalories2,exp=NA,ndx=NA,w=NA))[[1]] + nam2 <- paste0("Urban1PovLine",clus) + nam3<-exp(nam3) + assign(nam2,nam3) +} + + + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) \ No newline at end of file diff --git a/R/Archive/Other Codes/63-CBN-Rural96.R b/R/Archive/Other Codes/63-CBN-Rural96.R new file mode 100644 index 00000000..f54486f2 --- /dev/null +++ b/R/Archive/Other Codes/63-CBN-Rural96.R @@ -0,0 +1,3093 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(foreign) +library(haven) +load(file = "data9697.rda") +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + +CBN<-merge(CBN,data9697,by =c("ProvinceCode"),all.x=TRUE) + +CBN$FoodExpenditure<-CBN$FoodExpenditure*CBN$spring971food_index/100 +CBN$Cigar_Exp<-CBN$Cigar_Exp*CBN$total961cigar_index/100 +CBN$Cloth_Exp<-CBN$Cloth_Exp*CBN$total961cloth_index/100 +CBN$Amusement_Exp<-CBN$Amusement_Exp*CBN$total961amusement_index/100 +CBN$Communication_Exp<-CBN$Communication_Exp*CBN$total961communication_index/100 +CBN$EducExpenditure<-CBN$EducExpenditure*CBN$total961education_index/100 +CBN$Energy_Exp<-CBN$Energy_Exp*CBN$total961house_energy_index/100 +CBN$Furniture_Exp<-CBN$Furniture_Exp*CBN$total961furniture_index/100 +CBN$Hotel_Exp<-CBN$Hotel_Exp*CBN$total961hotel_index/100 +CBN$Behdasht_Exp<-CBN$Behdasht_Exp*CBN$total961behdasht_index/100 +CBN$Transportation_Exp<-CBN$Transportation_Exp*CBN$total961transportation_index/100 +CBN$Other_Exp<-CBN$Other_Exp*CBN$total961other_index/100 +CBN$ServiceExp<-CBN$ServiceExp*CBN$total961house_energy_index/100 +CBN$Investment_Exp<-CBN$Investment_Exp*CBN$total96/100 +CBN$Medical_Exp<-CBN$Medical_Exp*CBN$total961behdasht_index/100 +CBN$Durable_Exp<-CBN$Durable_Exp*CBN$total96/100 + +CBN[ ,shahrivar971furniture_index :=NULL] +CBN[ ,shahrivar971communication_index :=NULL] +CBN[ ,shahrivar971behdasht_index :=NULL] +CBN[ ,shahrivar971education_index :=NULL] +CBN[ ,shahrivar971amusement_index :=NULL] +CBN[ ,shahrivar971transportation_index :=NULL] +CBN[ ,shahrivar971food_index :=NULL] +CBN[ ,shahrivar971cigar_index :=NULL] +CBN[ ,shahrivar971hotel_index :=NULL] +CBN[ ,shahrivar971total_index :=NULL] +CBN[ ,shahrivar971house_energy_index :=NULL] +CBN[ ,shahrivar971cloth_index :=NULL] +CBN[ ,shahrivar971other_index :=NULL] +CBN[ ,spring971furniture_index :=NULL] +CBN[ ,spring971communication_index :=NULL] +CBN[ ,spring971behdasht_index :=NULL] +CBN[ ,spring971education_index :=NULL] +CBN[ ,spring971amusement_index :=NULL] +CBN[ ,spring971transportation_index :=NULL] +CBN[ ,spring971food_index :=NULL] +CBN[ ,spring971cigar_index :=NULL] +CBN[ ,spring971hotel_index :=NULL] +CBN[ ,spring971total_index :=NULL] +CBN[ ,spring971house_energy_index :=NULL] +CBN[ ,spring971cloth_index :=NULL] +CBN[ ,spring971other_index :=NULL] +CBN[ ,summer971furniture_index :=NULL] +CBN[ ,summer971communication_index :=NULL] +CBN[ ,summer971behdasht_index :=NULL] +CBN[ ,summer971education_index :=NULL] +CBN[ ,summer971amusement_index :=NULL] +CBN[ ,summer971transportation_index :=NULL] +CBN[ ,summer971food_index :=NULL] +CBN[ ,summer971cigar_index :=NULL] +CBN[ ,summer971hotel_index :=NULL] +CBN[ ,summer971total_index :=NULL] +CBN[ ,summer971house_energy_index :=NULL] +CBN[ ,summer971cloth_index :=NULL] +CBN[ ,summer971other_index :=NULL] +CBN[ ,total961furniture_index :=NULL] +CBN[ ,total961communication_index :=NULL] +CBN[ ,total961behdasht_index :=NULL] +CBN[ ,total961education_index :=NULL] +CBN[ ,total961amusement_index :=NULL] +CBN[ ,total961transportation_index :=NULL] +CBN[ ,total961food_index :=NULL] +CBN[ ,total961cigar_index :=NULL] +CBN[ ,total961hotel_index :=NULL] +CBN[ ,total961total_index :=NULL] +CBN[ ,total961house_energy_index :=NULL] +CBN[ ,total961cloth_index :=NULL] +CBN[ ,total961other_index :=NULL] + +CBN[ ,spring97 :=NULL] +CBN[ ,summer97 :=NULL] +CBN[ ,total96 :=NULL] +CBN[ ,shahrivar97 :=NULL] + + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] +CBNPoor[,sum(HIndivNo)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor2[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Rural<-CBN +save(CBN_Rural, file = paste0(Settings$HEISProcessedPath,"CBN_Rural","95.rda")) + +CBNPoor_Rural<-CBNPoor11 +save(CBNPoor_Rural, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Rural","95.rda")) + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/63-CBN-Urban96.R b/R/Archive/Other Codes/63-CBN-Urban96.R new file mode 100644 index 00000000..4bd602c5 --- /dev/null +++ b/R/Archive/Other Codes/63-CBN-Urban96.R @@ -0,0 +1,3032 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) +library(foreign) +library(haven) +load(file = "data9697.rda") +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + +CBN<-merge(CBN,data9697,by =c("ProvinceCode"),all.x=TRUE) + +CBN$FoodExpenditure<-CBN$FoodExpenditure*CBN$spring971food_index/100 +CBN$Cigar_Exp<-CBN$Cigar_Exp*CBN$total961cigar_index/100 +CBN$Cloth_Exp<-CBN$Cloth_Exp*CBN$total961cloth_index/100 +CBN$Amusement_Exp<-CBN$Amusement_Exp*CBN$total961amusement_index/100 +CBN$Communication_Exp<-CBN$Communication_Exp*CBN$total961communication_index/100 +CBN$EducExpenditure<-CBN$EducExpenditure*CBN$total961education_index/100 +CBN$Energy_Exp<-CBN$Energy_Exp*CBN$total961house_energy_index/100 +CBN$Furniture_Exp<-CBN$Furniture_Exp*CBN$total961furniture_index/100 +CBN$Hotel_Exp<-CBN$Hotel_Exp*CBN$total961hotel_index/100 +CBN$Behdasht_Exp<-CBN$Behdasht_Exp*CBN$total961behdasht_index/100 +CBN$Transportation_Exp<-CBN$Transportation_Exp*CBN$total961transportation_index/100 +CBN$Other_Exp<-CBN$Other_Exp*CBN$total961other_index/100 +CBN$ServiceExp<-CBN$ServiceExp*CBN$total961house_energy_index/100 +CBN$Investment_Exp<-CBN$Investment_Exp*CBN$total96/100 +CBN$Medical_Exp<-CBN$Medical_Exp*CBN$total961behdasht_index/100 +CBN$Durable_Exp<-CBN$Durable_Exp*CBN$total96/100 + +CBN[ ,shahrivar971furniture_index :=NULL] +CBN[ ,shahrivar971communication_index :=NULL] +CBN[ ,shahrivar971behdasht_index :=NULL] +CBN[ ,shahrivar971education_index :=NULL] +CBN[ ,shahrivar971amusement_index :=NULL] +CBN[ ,shahrivar971transportation_index :=NULL] +CBN[ ,shahrivar971food_index :=NULL] +CBN[ ,shahrivar971cigar_index :=NULL] +CBN[ ,shahrivar971hotel_index :=NULL] +CBN[ ,shahrivar971total_index :=NULL] +CBN[ ,shahrivar971house_energy_index :=NULL] +CBN[ ,shahrivar971cloth_index :=NULL] +CBN[ ,shahrivar971other_index :=NULL] +CBN[ ,spring971furniture_index :=NULL] +CBN[ ,spring971communication_index :=NULL] +CBN[ ,spring971behdasht_index :=NULL] +CBN[ ,spring971education_index :=NULL] +CBN[ ,spring971amusement_index :=NULL] +CBN[ ,spring971transportation_index :=NULL] +CBN[ ,spring971food_index :=NULL] +CBN[ ,spring971cigar_index :=NULL] +CBN[ ,spring971hotel_index :=NULL] +CBN[ ,spring971total_index :=NULL] +CBN[ ,spring971house_energy_index :=NULL] +CBN[ ,spring971cloth_index :=NULL] +CBN[ ,spring971other_index :=NULL] +CBN[ ,summer971furniture_index :=NULL] +CBN[ ,summer971communication_index :=NULL] +CBN[ ,summer971behdasht_index :=NULL] +CBN[ ,summer971education_index :=NULL] +CBN[ ,summer971amusement_index :=NULL] +CBN[ ,summer971transportation_index :=NULL] +CBN[ ,summer971food_index :=NULL] +CBN[ ,summer971cigar_index :=NULL] +CBN[ ,summer971hotel_index :=NULL] +CBN[ ,summer971total_index :=NULL] +CBN[ ,summer971house_energy_index :=NULL] +CBN[ ,summer971cloth_index :=NULL] +CBN[ ,summer971other_index :=NULL] +CBN[ ,total961furniture_index :=NULL] +CBN[ ,total961communication_index :=NULL] +CBN[ ,total961behdasht_index :=NULL] +CBN[ ,total961education_index :=NULL] +CBN[ ,total961amusement_index :=NULL] +CBN[ ,total961transportation_index :=NULL] +CBN[ ,total961food_index :=NULL] +CBN[ ,total961cigar_index :=NULL] +CBN[ ,total961hotel_index :=NULL] +CBN[ ,total961total_index :=NULL] +CBN[ ,total961house_energy_index :=NULL] +CBN[ ,total961cloth_index :=NULL] +CBN[ ,total961other_index :=NULL] + +CBN[ ,spring97 :=NULL] +CBN[ ,summer97 :=NULL] +CBN[ ,total96 :=NULL] +CBN[ ,shahrivar97 :=NULL] + + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(65:77,82:83)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=65:77][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=148:163][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Size*Weight),by=.(cluster)][order(cluster)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(185:200)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(202:217)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(cluster)][order(cluster)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Urban<-CBN +save(CBN_Urban, file = paste0(Settings$HEISProcessedPath,"CBN_Urban","95.rda")) + +CBNPoor_Urban<-CBNPoor11 +save(CBNPoor_Urban, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Urban","95.rda")) + + +endtime <- proc.time() + + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/CBN Rural-Sort only first stage.R b/R/Archive/Other Codes/CBN Rural-Sort only first stage.R new file mode 100644 index 00000000..f1e0a0a1 --- /dev/null +++ b/R/Archive/Other Codes/CBN Rural-Sort only first stage.R @@ -0,0 +1,3117 @@ +#CBN Method-Rural.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Rural"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(66:78,82:84)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=66:78][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=149:164][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] + +OldfirstRural<-CBN[,.(HHID,Percentile,Poor)] +save(OldfirstRural, file=paste0(Settings$HEISProcessedPath,"Y",year,"OldfirstRural.rda")) + + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,5) # Simple K-means + +cl <- kmeans(dtW,5) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt5Rural.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### + + + + + + + + + +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] +CBNPoor[,sum(HIndivNo)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:4,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_1 & cluster==5 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_2 & cluster==5 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_3 & cluster==5 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_4 & cluster==5 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_5 & cluster==5 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_6 & cluster==5 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_7 & cluster==5 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_8 & cluster==5 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=FoodExpenditure_Per_cluster/(Daily_Calories_cluster2)] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 5 +CBNPoorCluster<-CBNPoor[cluster==5] +Food_Povertyline5_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline5_9 & cluster==5 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +RuralEngel1<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<0.9*Food_Povertyline1_9] +RuralunderEngel1<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total>1.1*Food_Povertyline1_9] +RuralaboveEngel1<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +RuralEngel2<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<0.9*Food_Povertyline2_9] +RuralunderEngel2<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total>1.1*Food_Povertyline2_9] +RuralaboveEngel2<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +RuralEngel3<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<0.9*Food_Povertyline3_9] +RuralunderEngel3<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total>1.1*Food_Povertyline3_9] +RuralaboveEngel3<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +RuralEngel4<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<0.9*Food_Povertyline4_9] +RuralunderEngel4<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total>1.1*Food_Povertyline4_9] +RuralaboveEngel4<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + + + +#cluster 5 +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<1.1*Food_Povertyline5_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline5_9] +RuralEngel5<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total<0.9*Food_Povertyline5_9] +RuralunderEngel5<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==5 & FoodExpenditure_Per_total>1.1*Food_Povertyline5_9] +RuralaboveEngel5<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel5<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse5<-1/Engel5 +Povertyline5_9<-Engel_Reverse5*Food_Povertyline5_9 + +RuralEngel<-rbind(RuralEngel1,RuralEngel2,RuralEngel3,RuralEngel4,RuralEngel5) +save(RuralEngel, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralEngel.rda")) +RuralunderEngel<-rbind(RuralunderEngel1,RuralunderEngel2,RuralunderEngel3,RuralunderEngel4,RuralunderEngel5) +save(RuralunderEngel, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralunderEngel.rda")) +RuralaboveEngel<-rbind(RuralaboveEngel1,RuralaboveEngel2,RuralaboveEngel3,RuralaboveEngel4,RuralaboveEngel5) +save(RuralaboveEngel, file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralaboveEngel.rda")) + +Povertyline1_9<-4323140 +Povertyline2_9<-2338640 +Povertyline3_9<-2194200 +Povertyline4_9<-2763930 +Povertyline5_9<-2012640 + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline5_9 & cluster==5,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor2[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] +CBNPoor11[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor11[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==23, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Rural<-CBN +save(CBN_Rural, file = paste0(Settings$HEISProcessedPath,"CBN_Rural","95.rda")) + +CBNPoor_Rural<-CBNPoor11 +save(CBNPoor_Rural, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Rural","95.rda")) + +CBNPoor11<-CBNPoor11[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Cigar_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Cloth_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Amusement_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Communication_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=EducExpenditure/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Energy_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Furniture_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Hotel_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Behdasht_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Transportation_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Other_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=ServiceExp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Investment_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Medical_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + +CBNPoor11<-CBNPoor11[,ratio1:=Durable_Exp/Total_Exp_Month] +CBNPoor11[,weighted.mean(ratio1,Weight),by=cluster][order(cluster)] + + +CBNRural<-CBN[,.(HHID,Percentile,Poor2,Weight,ProvinceCode)] +save(CBNRural, file=paste0(Settings$HEISProcessedPath,"Y",year,"CBNRural.rda")) + +OldFoodRural<-CBN[,.(HHID,Percentile,Poor9)] +save(OldFoodRural, file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFoodRural.rda")) + +OldFinalPoorRural<-CBN[,.(HHID,Percentile,Poor11)] +save(OldFinalPoorRural, file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFinalPoorRural.rda")) + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/CBN Urban-Sort only first stage.R b/R/Archive/Other Codes/CBN Urban-Sort only first stage.R new file mode 100644 index 00000000..c6868d10 --- /dev/null +++ b/R/Archive/Other Codes/CBN Urban-Sort only first stage.R @@ -0,0 +1,3073 @@ +#CBN Method-Urban.R +# +# Copyright © 2018:Arin Shahbazian +# Licence: GPL-3 +# +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(stringr) +library(data.table) +library(sm) +library(ggplot2) + +#for(year in (Settings$startyear:Settings$endyear)){ +# cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +HHBase[,IndivNo:=NULL] +HHBase[,Relationship:=NULL] +HHBase[,Sex:=NULL] +HHBase[,Age:=NULL] +HHBase[,Literate:=NULL] +HHBase[,Student:=NULL] +HHBase[,EduCode:=NULL] +HHBase[,EduYears:=NULL] +HHBase[,EduLevel:=NULL] +HHBase[,EduLevel0:=NULL] +HHBase[,ActivityState:=NULL] +HHBase[,MarritalState:=NULL] +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Ghand_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hoboobat_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Roghan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Berenj_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Nan_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Goosht_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Morgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mahi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Shir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mast_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Panir_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Tokhmemorgh_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Mive_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sabzi_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Makarooni_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Sibzamini_Data.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +Ghand_Data<-Ghand_Data[,.(HHID,Ghandgram,GhandPrice)] +Hoboobat_Data<-Hoboobat_Data[,.(HHID,Hoboobatgram,HoboobatPrice)] +Roghan_Data<-Roghan_Data[,.(HHID,Roghangram,RoghanPrice)] +Berenj_Data<-Berenj_Data[,.(HHID,Berenjgram,BerenjPrice)] +Nan_Data<-Nan_Data[,.(HHID,Nangram,NanPrice)] +Goosht_Data<-Goosht_Data[,.(HHID,Gooshtgram,GooshtPrice)] +Morgh_Data<-Morgh_Data[,.(HHID,Morghgram,MorghPrice)] +Mahi_Data<-Mahi_Data[,.(HHID,Mahigram,MahiPrice)] +Shir_Data<-Shir_Data[,.(HHID,Shirgram,ShirPrice)] +Mast_Data<-Mast_Data[,.(HHID,Mastgram,MastPrice)] +Panir_Data<-Panir_Data[,.(HHID,Panirgram,PanirPrice)] +Tokhmemorgh_Data<-Tokhmemorgh_Data[,.(HHID,Tokhmemorghgram,TokhmemorghPrice)] +Mive_Data<-Mive_Data[,.(HHID,Mivegram,MivePrice)] +Sabzi_Data<-Sabzi_Data[,.(HHID,Sabzigram,SabziPrice)] +Makarooni_Data<-Makarooni_Data[,.(HHID,Makaroonigram,MakarooniPrice)] +Sibzamini_Data<-Sibzamini_Data[,.(HHID,Sibzaminigram,SibzaminiPrice)] + +Food<-merge(HHBase,Ghand_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Ghandgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Hoboobat_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Hoboobatgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Roghan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Roghangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Berenj_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Berenjgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Nan_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Nangram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Goosht_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Gooshtgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Morgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Morghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mahi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mahigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Shir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Shirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mast_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mastgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Panir_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Panirgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Tokhmemorgh_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Tokhmemorghgram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Mive_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Mivegram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sabzi_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sabzigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Makarooni_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Makaroonigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Sibzamini_Data,by =c("HHID"),all.x=TRUE) +for (col in c("Sibzaminigram")) Food[is.na(get(col)), (col) := 0] +Food<-merge(Food,Weights,by =c("HHID"),all.x=TRUE) + + + +#load Expenditure groups +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHBase.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","HHI.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Foods.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cigars.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Cloths.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Amusements.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Communications.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Durables.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Education.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Energy.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Furnitures.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Hotels.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","House.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Medicals.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Behdashts.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Transportations.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Others.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Investments.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Resturants.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y","95","Weights.rda")) + +#merge Expenditure groups +CBN<-merge(Food,HHI ,by =c("HHID"),all=TRUE) +CBN<-merge(CBN,FoodData,by =c("HHID"),all=TRUE) +for (col in c("FoodExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CigarData,by =c("HHID"),all=TRUE) +for (col in c("Cigar_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ClothData,by =c("HHID"),all=TRUE) +for (col in c("Cloth_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,AmusementData,by =c("HHID"),all=TRUE) +for (col in c("Amusement_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,CommunicationData,by =c("HHID"),all=TRUE) +for (col in c("Communication_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EducData,by =c("HHID"),all=TRUE) +for (col in c("EducExpenditure")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,EnergyData,by =c("HHID"),all=TRUE) +for (col in c("Energy_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,FurnitureData,by =c("HHID"),all=TRUE) +for (col in c("Furniture_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HotelData,by =c("HHID"),all=TRUE) +for (col in c("Hotel_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,BehdashtData,by =c("HHID"),all=TRUE) +for (col in c("Behdasht_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,TransportationData,by =c("HHID"),all=TRUE) +for (col in c("Transportation_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,OtherData,by =c("HHID"),all=TRUE) +for (col in c("Other_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,HouseData,by =c("HHID"),all=TRUE) +for (col in c("ServiceExp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,InvestmentData,by =c("HHID"),all=TRUE) +for (col in c("Investment_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,MedicalData,by =c("HHID"),all=TRUE) +for (col in c("Medical_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,DurableData,by =c("HHID"),all=TRUE) +for (col in c("Durable_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-merge(CBN,ResturantData,by =c("HHID"),all=TRUE) +for (col in c("Resturant_Exp")) CBN[is.na(get(col)), (col) := 0] +CBN<-CBN[Size!=0] +CBN<-CBN[Region=="Urban"] +CBN<-CBN[FoodExpenditure!=0] + + +#Calculate Per_Total Expenditures Monthly +CBN[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=c(66:78,82:84)][] +CBN[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=66:78][] + +CBN$Total_Exp_Month_Per<-CBN$Total_Exp_Month/CBN$EqSizeOECD +CBN$Total_Exp_Month_Per_nondurable<-CBN$Total_Exp_Month_nondurable/CBN$EqSizeOECD + +#Calculate Per_Food Expenditures Monthly +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN$FoodExpenditure_Per<-CBN$FoodExpenditure/CBN$EqSizeCalory + +#Calculate Per_Food Expenditures Daily +CBN$FoodExpenditure_Per_day<-CBN$FoodExpenditure_Per/30 + +CBN$Ghandgram_Per_day<-CBN$Ghandgram/(30*CBN$EqSizeOECD) +CBN$Hoboobatgram_Per_day<-CBN$Hoboobatgram/(30*CBN$EqSizeOECD) +CBN$Berenjgram_Per_day<-CBN$Berenjgram/(30*CBN$EqSizeOECD) +CBN$Nangram_Per_day<-CBN$Nangram/(30*CBN$EqSizeOECD) +CBN$Roghangram_Per_day<-CBN$Roghangram/(30*CBN$EqSizeOECD) +CBN$Gooshtgram_Per_day<-CBN$Gooshtgram/(30*CBN$EqSizeOECD) +CBN$Morghgram_Per_day<-CBN$Morghgram/(30*CBN$EqSizeOECD) +CBN$Mahigram_Per_day<-CBN$Mahigram/(30*CBN$EqSizeOECD) +CBN$Shirgram_Per_day<-CBN$Shirgram/(30*CBN$EqSizeOECD) +CBN$Mastgram_Per_day<-CBN$Mastgram/(30*CBN$EqSizeOECD) +CBN$Panirgram_Per_day<-CBN$Panirgram/(30*CBN$EqSizeOECD) +CBN$Tokhmemorghgram_Per_day<-CBN$Tokhmemorghgram/(30*CBN$EqSizeOECD) +CBN$Mivegram_Per_day<-CBN$Mivegram/(30*CBN$EqSizeOECD) +CBN$Sabzigram_Per_day<-CBN$Sabzigram/(30*CBN$EqSizeOECD) +CBN$Makaroonigram_Per_day<-CBN$Makaroonigram/(30*CBN$EqSizeOECD) +CBN$Sibzaminigram_Per_day<-CBN$Sibzaminigram/(30*CBN$EqSizeOECD) +CBN[,EqSizeCalory:=NULL] + +load(file="PriceIndex95.rda") +CBN<-merge(CBN,PriceIndex95,by=c("ProvinceCode"),all.x = TRUE) +CBN[,ostan:=NULL] +load(file="PriceIndex.rda") +CBN<-merge(CBN,PriceIndex,by=c("ProvinceCode"),all.x = TRUE) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per_nondurable)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + + +CBN$Ghand_W<-CBN$Ghandgram_Per_day*CBN$GhandPrice*0.001*30 +CBN$Hoboobat_W<-CBN$Hoboobatgram_Per_day*CBN$HoboobatPrice*0.001*30 +CBN$Roghan_W<-CBN$Roghangram_Per_day*CBN$RoghanPrice*0.001*30 +CBN$Berenj_W<-CBN$Berenjgram_Per_day*CBN$BerenjPrice*0.001*30 +CBN$Nan_W<-CBN$Nangram_Per_day*CBN$NanPrice*0.001*30 +CBN$Goosht_W<-CBN$Gooshtgram_Per_day*CBN$GooshtPrice*0.001*30 +CBN$Morgh_W<-CBN$Morghgram_Per_day*CBN$MorghPrice*0.001*30 +CBN$Mahi_W<-CBN$Mahigram_Per_day*CBN$MahiPrice*0.001*30 +CBN$Shir_W<-CBN$Shirgram_Per_day*CBN$ShirPrice*0.001*30 +CBN$Mast_W<-CBN$Mastgram_Per_day*CBN$MastPrice*0.001*30 +CBN$Panir_W<-CBN$Panirgram_Per_day*CBN$PanirPrice*0.001*30 +CBN$Tokhmemorgh_W<-CBN$Tokhmemorghgram_Per_day*CBN$TokhmemorghPrice*0.001*30 +CBN$Mive_W<-CBN$Mivegram_Per_day*CBN$MivePrice*0.001*30 +CBN$Sabzi_W<-CBN$Sabzigram_Per_day*CBN$SabziPrice*0.001*30 +CBN$Makarooni_W<-CBN$Makaroonigram_Per_day*CBN$MakarooniPrice*0.001*30 +CBN$Sibzamini_W<-CBN$Sibzaminigram_Per_day*CBN$SibzaminiPrice*0.001*30 +CBN$Home_W<-CBN$ServiceExp/CBN$EqSizeOECD +CBN$Home_Per_Metr<-CBN$MetrPrice/CBN$EqSizeOECD + +#Seperate big cities +CBN[,sum(Weight*Size),by=ProvinceCode][order(V1)] +CBN[,HHIDs:=as.character(HHID)] +CBN[,ShahrestanCode:=as.integer(str_sub(HHIDs,2,5))] +CBN[,sum(Weight*Size),by=ShahrestanCode][order(V1)][330:387] +CBNTehran<-CBN[ProvinceCode==23] +CBNTehran[,sum(Weight*Size),by=ShahrestanCode] +CBNTabriz<-CBN[ProvinceCode==3] +CBNTabriz[,sum(Weight*Size),by=ShahrestanCode] +CBNAhvaz<-CBN[ProvinceCode==6] +CBNAhvaz[,sum(Weight*Size),by=ShahrestanCode] +CBNShiraz<-CBN[ProvinceCode==7] +CBNShiraz[,sum(Weight*Size),by=ShahrestanCode] +CBNMashhad<-CBN[ProvinceCode==9] +CBNMashhad[,sum(Weight*Size),by=ShahrestanCode] +CBNEsfahan<-CBN[ProvinceCode==10] +CBNEsfahan[,sum(Weight*Size),by=ShahrestanCode] +CBNKaraj<-CBN[ProvinceCode==30] +CBNKaraj[,sum(Weight*Size),by=ShahrestanCode] +CBNKermanshah<-CBN[ProvinceCode==5] +CBNKermanshah[,sum(Weight*Size),by=ShahrestanCode] + + +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==303,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==603,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==707,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==916,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==1002,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==3001,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==2301,ProvinceCode:=as.numeric(ShahrestanCode)] +CBN<-CBN[ShahrestanCode==502,ProvinceCode:=as.numeric(ShahrestanCode)] + +# Food Calories +CBN$Ghand_Calory<- CBN$Ghandgram *4 +CBN$Hoboobat_Calory<- CBN$Hoboobatgram *3 +CBN$Nan_Calory<- CBN$Nangram *2.5 +CBN$Berenj_Calory<- CBN$Berenjgram *1.2 +CBN$Roghan_Calory<- CBN$Roghangram *8 +CBN$Goosht_Calory<- CBN$Gooshtgram *2.5 +CBN$Morgh_Calory<- CBN$Morghgram *2 +CBN$Mahi_Calory<- CBN$Mahigram *1 +CBN$Shir_Calory<- CBN$Shirgram *2.5 +CBN$Mast_Calory<- CBN$Mastgram *1.5 +CBN$Panir_Calory<- CBN$Mastgram *2.5 +CBN$Tokhmemorgh_Calory<- CBN$Tokhmemorghgram *1.4 +CBN$Mive_Calory<- CBN$Mivegram *0.5 +CBN$Sabzi_Calory<- CBN$Sabzigram *0.5 +CBN$Makarooni_Calory<- CBN$Makaroonigram *3.6 +CBN$Sibzamini_Calory<- CBN$Sibzaminigram *0.9 +#utils::View(CBN) + +#CalculatePer_calories +CBN[, Daily_Exp_Calories := Reduce(`+`, .SD), .SDcols=149:164][] +CBN[,EqSizeCalory :=(Size-NKids) + NKids*(1800/2100)] +CBN[,Per_Daily_Exp_Calories:=Daily_Exp_Calories/EqSizeCalory] +CBN <- CBN[Per_Daily_Exp_Calories<100000] # arbitrary removal of outliers +#CBN[,Daily_Calories_cluster:=weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Daily_Calories_cluster,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +#CBN[,weighted.mean(Size,Weight,na.rm = TRUE),by=cluster] +#CBN[,sum(Weight*Size),by=cluster] +#CBN[,sum(Weight),by=cluster] +#CBN[,sum(Poor),by=cluster] + + +#Calculate_Per_calories +CBN$Ghand_per_Calory<- CBN$Ghandgram *4/CBN$EqSizeCalory +CBN$Hoboobat_per_Calory<- CBN$Hoboobatgram *3/CBN$EqSizeCalory +CBN$Nan_per_Calory<- CBN$Nangram *2.5/CBN$EqSizeCalory +CBN$Berenj_per_Calory<- CBN$Berenjgram *1.2/CBN$EqSizeCalory +CBN$Roghan_per_Calory<- CBN$Roghangram *8/CBN$EqSizeCalory +CBN$Goosht_per_Calory<- CBN$Gooshtgram *2.5/CBN$EqSizeCalory +CBN$Morgh_per_Calory<- CBN$Morghgram *2/CBN$EqSizeCalory +CBN$Mahi_per_Calory<- CBN$Mahigram *1/CBN$EqSizeCalory +CBN$Shir_per_Calory<- CBN$Shirgram *2.5/CBN$EqSizeCalory +CBN$Mast_per_Calory<- CBN$Mastgram *1.5/CBN$EqSizeCalory +CBN$Panir_per_Calory<- CBN$Mastgram *2.5/CBN$EqSizeCalory +CBN$Tokhmemorgh_per_Calory<- CBN$Tokhmemorghgram *1.4/CBN$EqSizeCalory +CBN$Mive_per_Calory<- CBN$Mivegram *0.5/CBN$EqSizeCalory +CBN$Sabzi_per_Calory<- CBN$Sabzigram *0.5/CBN$EqSizeCalory +CBN$Makarooni_per_Calory<- CBN$Makaroonigram *3.6/CBN$EqSizeCalory +CBN$Sibzamini_per_Calory<- CBN$Sibzaminigram *0.9/CBN$EqSizeCalory + + +#Assume that deciles 1 and 2 are poor +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] + +OldfirstUrban<-CBN[,.(HHID,Percentile,Poor)] +save(OldfirstUrban, file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFoodUrban.rda")) + + + +#K-means weights +PriceWeights<-CBN[,.(HHID,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,ProvinceCode,Weight)] +dt3 <- PriceWeights[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt3<- dt3[order(ProvinceCode)] +dt3 <- dt3[,.(Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W)] + + +#K-means algorithm for clustering by prices +test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,ProvinceCode,Weight)] +#test<-CBNPoor[,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice,Ghand_W,Hoboobat_W,Roghan_W,Berenj_W,Nan_W,Goosht_W,Morgh_W,Mahi_W,Shir_W,Mast_W,Panir_W,Tokhmemorgh_W,Mive_W,Sabzi_W,Makarooni_W,Sibzamini_W,Home_W,Region,ProvinceCode,Weight)] +dt2 <- test[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +dt2<- dt2[order(ProvinceCode)] +for (col in c("MahiPrice")) dt2[is.nan(get(col)), (col) := 200000] +dt <- dt2 [,.(GhandPrice,HoboobatPrice,RoghanPrice,BerenjPrice,NanPrice,GooshtPrice,MorghPrice,MahiPrice,ShirPrice,MastPrice,PanirPrice,TokhmemorghPrice,MivePrice,SabziPrice,MakarooniPrice,SibzaminiPrice,MetrPrice)] + + +pca <- princomp(dt, cor=T) +PRICE <- pca$scores +PRICE1 <- -1*PRICE[,1] +PRICE2 <- -1*PRICE[,2] +PRICE3 <- -1*PRICE[,3] +PRICE4 <- -1*PRICE[,4] +PRICE5 <- -1*PRICE[,5] +PRICE6 <- -1*PRICE[,6] +PRICE7 <- -1*PRICE[,7] +PRICE8 <- -1*PRICE[,8] +PRICE9 <- -1*PRICE[,9] +PRICE10 <- -1*PRICE[,10] +PRICE11 <- -1*PRICE[,11] +PRICE12 <- -1*PRICE[,12] +PRICE13 <- -1*PRICE[,13] +PRICE14 <- -1*PRICE[,14] +PRICE15 <- -1*PRICE[,15] +PRICE16 <- -1*PRICE[,16] +PRICE17 <- -1*PRICE[,17] + +# Deciding how many clusters +wss <- (nrow(dt)-1)*sum(apply(dt,2,var)) +for (i in 2:30) wss[i] <- sum(kmeans(dt, centers=i)$withinss) +plot(1:30, wss, type="b", xlab="Number of Clusters", + ylab="Within groups sum of squares") + +#Weighted clustering + +dt3.m <- dt3[,lapply(.SD, mean)] # Weights for each vector +dtW <- dt * sqrt(dt3.m[rep(1,nrow(dt))]) # Weighted observations +kmeans(dtW,4) # Simple K-means + +cl <- kmeans(dtW,4) +cl$cluster +dt2 <- dt2[,cluster:=data.table(cl$cluster)] +dt2<-dt2[,.(ProvinceCode,cluster)] +load(file="dt4Urban.rda") +#plot(PRICE1, PRICE2,col=cl$cluster) +#points(cl$centers, pch=20) +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Weight*Size),by=cluster] +CBNPoor[,sum(Weight),by=cluster] +CBNPoor[,sum(Poor),by=cluster] +C2<-CBNPoor[,.(HHID,ProvinceCode,Region,Decile,Poor,cluster)] +###################################################################### +####Iteration 1##### +###Iteration1-1 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] + + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes31<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 1:2,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(Size*Weight),by=.(cluster)][order(cluster)] + +###Iteration1-2 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes32<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-3 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes33<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + + +###Iteration1-4 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes34<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-5 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes35<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-6 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes36<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-7 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes37<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-8 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes38<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-9 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes39<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(ProvinceCode)][order(ProvinceCode)] + +###Iteration1-10 +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(186:201)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(203:218)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] +#CBN[,weighted.mean(Poor,Weight),by=cluster][order(cluster)] + +#Real Prices +T_Bundle_Value<-subset(CBNPoor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBNPoor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBNPoor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBNPoor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2<-CBNPoor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2<-Indexes2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes<-Indexes2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes310<-Indexes[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] +CBN[,RealPriceIndex:=NULL] +CBN<-merge(CBN,Indexes,by=c("ProvinceCode"),all.x = TRUE) +CBN<-CBN[,Total_Food_Month_Per2:=FoodExpenditure_Per*RealPriceIndex] +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] +#utils::View(CBN) + + +#Sort Expenditure data +CBN<- CBN[order(Total_Exp_Month_Per2)] + +#Calculate cumulative weights +sum(CBN$Weight) +CBN$cumweight <- cumsum(CBN$Weight) +tx <- max(CBN$cumweight) + +#Calculate deciles by weights +CBN[,Decile:=cut(cumweight,breaks = seq(0,tx,tx/10),labels = 1:10)] +CBN[,Percentile:=cut(cumweight,breaks=seq(0,tx,tx/100),labels=1:100)] + +#Update Poors +CBN[,Poor:=ifelse(Decile %in% 2:5,1,0)] +CBNPoor<-CBN[Poor==1] +CBNPoor<-merge(CBNPoor,dt2,by=c("ProvinceCode"),all.x = TRUE) +CBNPoor[,sum(HIndivNo),by=.(cluster)][order(cluster)] + + +#Calculate Per_calories in clusters +CBNPoor[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(189:204)][] +#utils::View(CBNPoor) + + +#Calculate Per_calories in clusters(=2100) +CBNPoor[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(206:221)][] + +CBNPoor[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor[is.na(get(col)), (col) := 0] +CBNPoor<-CBNPoor[Per_Daily_Exp_Calories!=0] +CBNPoor[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNCalory<-CBNPoor[,.(Per_Daily_Calories,Per_Daily_Exp_Calories,Per_Calory_Resturant,Resturant_Exp,cluster,ProvinceCode)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] + +#Food expenditures (equal 2100 CCAL) +CBNPoor[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor[cluster==1] +Food_Povertyline1_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor[cluster==2] +Food_Povertyline2_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor[cluster==3] +Food_Povertyline3_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor[cluster==4] +Food_Povertyline4_1<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +CBN<-merge(CBN,dt2,by=c("ProvinceCode"),all.x = TRUE) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + +#########Iteration 2############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1,1,0)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_1 & cluster==1 ,1,0)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_1 & cluster==2 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_1 & cluster==3 ,1,Poor2)] +CBN[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4,1,Poor2)] +c[,Poor2:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_1 & cluster==4 ,1,Poor2)] +CBN[,weighted.mean(Poor2,Weight),by=cluster][order(cluster)] +CBNPoor[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2<-CBN[Poor2==1] + + +#CalculatePer_calories in clusters +CBNPoor2[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(190:205)][] +#utils::View(CBNPoor2) + +#Calculate Per_calories in clusters(=2100) +CBNPoor2[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(207:222)][] + +CBNPoor2[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor2[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor2[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor2[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor2[is.na(get(col)), (col) := 0] +CBNPoor2<-CBNPoor2[Per_Daily_Exp_Calories!=0] +CBNPoor2[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + +#sum of total food expenditures +CBNPoor2[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor2[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor2[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor2[cluster==1] +Food_Povertyline1_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor2[cluster==2] +Food_Povertyline2_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor2[cluster==3] +Food_Povertyline3_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor2[cluster==4] +Food_Povertyline4_2<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 3############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1,1,0)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_2 & cluster==1 ,1,0)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_2 & cluster==2 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_2 & cluster==3 ,1,Poor3)] +CBN[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4,1,Poor3)] +c[,Poor3:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_2 & cluster==4 ,1,Poor3)] +CBN[,weighted.mean(Poor3,Weight),by=cluster][order(cluster)] +CBNPoor2[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3<-CBN[Poor3==1] + + + +#CalculatePer_calories in clusters +CBNPoor3[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor3) + +#Calculate Per_calories in clusters(=2100) +CBNPoor3[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor3[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor3[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor3[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor3[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor3[is.na(get(col)), (col) := 0] +CBNPoor3<-CBNPoor3[Per_Daily_Exp_Calories!=0] +CBNPoor3[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor3[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor3[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor3[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor3[cluster==1] +Food_Povertyline1_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor3[cluster==2] +Food_Povertyline2_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor3[cluster==3] +Food_Povertyline3_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor3[cluster==4] +Food_Povertyline4_3<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 4############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1,1,0)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_3 & cluster==1 ,1,0)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_3 & cluster==2 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_3 & cluster==3 ,1,Poor4)] +CBN[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4,1,Poor4)] +c[,Poor4:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_3 & cluster==4 ,1,Poor4)] +CBN[,weighted.mean(Poor4,Weight),by=cluster][order(cluster)] +CBNPoor3[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4<-CBN[Poor4==1] + +#CalculatePer_calories in clusters +CBNPoor4[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor4) + +#Calculate Per_calories in clusters(=2100) +CBNPoor4[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor4[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor4[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor4[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor4[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor4[is.na(get(col)), (col) := 0] +CBNPoor4<-CBNPoor4[Per_Daily_Exp_Calories!=0] +CBNPoor4[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor4[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor4[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor4[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor4[cluster==1] +Food_Povertyline1_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor4[cluster==2] +Food_Povertyline2_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor4[cluster==3] +Food_Povertyline3_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor4[cluster==4] +Food_Povertyline4_4<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 5############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1,1,0)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_4 & cluster==1 ,1,0)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_4 & cluster==2 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_4 & cluster==3 ,1,Poor5)] +CBN[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4,1,Poor5)] +c[,Poor5:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_4 & cluster==4 ,1,Poor5)] +CBN[,weighted.mean(Poor5,Weight),by=cluster][order(cluster)] +CBNPoor4[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5<-CBN[Poor5==1] + +#CalculatePer_calories in clusters +CBNPoor5[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor5) + +#Calculate Per_calories in clusters(=2100) +CBNPoor5[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor5[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor5[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor5[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor5[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor5[is.na(get(col)), (col) := 0] +CBNPoor5<-CBNPoor5[Per_Daily_Exp_Calories!=0] +CBNPoor5[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor5[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor5[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor5[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor5[cluster==1] +Food_Povertyline1_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor5[cluster==2] +Food_Povertyline2_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor5[cluster==3] +Food_Povertyline3_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor5[cluster==4] +Food_Povertyline4_5<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 6############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1,1,0)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_5 & cluster==1 ,1,0)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_5 & cluster==2 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_5 & cluster==3 ,1,Poor6)] +CBN[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4,1,Poor6)] +c[,Poor6:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_5 & cluster==4 ,1,Poor6)] +CBN[,weighted.mean(Poor6,Weight),by=cluster][order(cluster)] +CBNPoor5[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6<-CBN[Poor6==1] + +#CalculatePer_calories in clusters +CBNPoor6[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor6) + +#Calculate Per_calories in clusters(=2100) +CBNPoor6[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor6[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor6[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor6[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor6[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor6[is.na(get(col)), (col) := 0] +CBNPoor6<-CBNPoor6[Per_Daily_Exp_Calories!=0] +CBNPoor6[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor6[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor6[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor6[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor6[cluster==1] +Food_Povertyline1_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor6[cluster==2] +Food_Povertyline2_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor6[cluster==3] +Food_Povertyline3_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor6[cluster==4] +Food_Povertyline4_6<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 7############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1,1,0)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_6 & cluster==1 ,1,0)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_6 & cluster==2 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_6 & cluster==3 ,1,Poor7)] +CBN[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4,1,Poor7)] +c[,Poor7:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_6 & cluster==4 ,1,Poor7)] +CBN[,weighted.mean(Poor7,Weight),by=cluster][order(cluster)] +CBNPoor6[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7<-CBN[Poor7==1] + +#CalculatePer_calories in clusters +CBNPoor7[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor7) + +#Calculate Per_calories in clusters(=2100) +CBNPoor7[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor7[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor7[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor7[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor7[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor7[is.na(get(col)), (col) := 0] +CBNPoor7<-CBNPoor7[Per_Daily_Exp_Calories!=0] +CBNPoor7[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor7[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor7[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor7[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor7[cluster==1] +Food_Povertyline1_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor7[cluster==2] +Food_Povertyline2_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor7[cluster==3] +Food_Povertyline3_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor7[cluster==4] +Food_Povertyline4_7<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 8############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1,1,0)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_7 & cluster==1 ,1,0)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_7 & cluster==2 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_7 & cluster==3 ,1,Poor8)] +CBN[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4,1,Poor8)] +c[,Poor8:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_7 & cluster==4 ,1,Poor8)] +CBN[,weighted.mean(Poor8,Weight),by=cluster][order(cluster)] +CBNPoor7[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8<-CBN[Poor8==1] + + +#CalculatePer_calories in clusters +CBNPoor8[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor8) + +#Calculate Per_calories in clusters(=2100) +CBNPoor8[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor8[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor8[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor8[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor8[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor8[is.na(get(col)), (col) := 0] +CBNPoor8<-CBNPoor8[Per_Daily_Exp_Calories!=0] +CBNPoor8[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor8[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor8[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + +#Calculations +CBNPoor8[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor8[cluster==1] +Food_Povertyline1_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor8[cluster==2] +Food_Povertyline2_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor8[cluster==3] +Food_Povertyline3_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor8[cluster==4] +Food_Povertyline4_8<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 9############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1,1,0)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_8 & cluster==1 ,1,0)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_8 & cluster==2 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_8 & cluster==3 ,1,Poor9)] +CBN[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4,1,Poor9)] +c[,Poor9:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_8 & cluster==4 ,1,Poor9)] +CBN[,weighted.mean(Poor9,Weight),by=cluster][order(cluster)] +CBNPoor8[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9<-CBN[Poor9==1] + + +#CalculatePer_calories in clusters +CBNPoor9[,Daily_Ghand_cluster:=weighted.mean(Ghand_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Hoboobat_cluster:=weighted.mean(Hoboobat_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Nan_cluster:=weighted.mean(Nan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Berenj_cluster:=weighted.mean(Berenj_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Roghan_cluster:=weighted.mean(Roghan_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Goosht_cluster:=weighted.mean(Goosht_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Morgh_cluster:=weighted.mean(Morgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mahi_cluster:=weighted.mean(Mahi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Shir_cluster:=weighted.mean(Shir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mast_cluster:=weighted.mean(Mast_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Panir_cluster:=weighted.mean(Panir_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Tokhmemorgh_cluster:=weighted.mean(Tokhmemorgh_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Mive_cluster:=weighted.mean(Mive_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sabzi_cluster:=weighted.mean(Sabzi_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Makarooni_cluster:=weighted.mean(Makarooni_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,Daily_Sibzamini_cluster:=weighted.mean(Sibzamini_per_Calory,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[, Daily_Calories_cluster2 := Reduce(`+`, .SD), .SDcols=c(191:206)][] +#utils::View(CBNPoor9) + +#Calculate Per_calories in clusters(=2100) +CBNPoor9[,Daily2_Ghand:=(Daily_Ghand_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Ghand")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Hoboobat:=(Daily_Hoboobat_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Hoboobat")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Nan:=(Daily_Nan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Nan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Berenj:=(Daily_Berenj_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Berenj")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Roghan:=(Daily_Roghan_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Roghan")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Goosht:=(Daily_Goosht_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Goosht")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Morgh:=(Daily_Morgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Morgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mahi:=(Daily_Mahi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mahi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Shir:=(Daily_Shir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Shir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mast:=(Daily_Mast_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mast")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Panir:=(Daily_Panir_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Panir")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Tokhmemorgh:=(Daily_Tokhmemorgh_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Tokhmemorgh")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Mive:=(Daily_Mive_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Mive")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sabzi:=(Daily_Sabzi_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sabzi")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Makarooni:=(Daily_Makarooni_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Makarooni")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[,Daily2_Sibzamini:=(Daily_Sibzamini_cluster*2100)/(Daily_Calories_cluster2)] +for (col in c("Daily2_Sibzamini")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9[, Daily_Calories3 := Reduce(`+`, .SD), .SDcols=c(208:223)][] + + +CBNPoor9[,FoodExpenditure_Per_cluster:=weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_cluster,Weight,na.rm = TRUE),by=cluster] + +CBNPoor9[,Calory_Price:=(FoodExpenditure_Per_cluster/(Daily_Calories_cluster2))] +CBNPoor9[,weighted.mean(Calory_Price,Weight,na.rm = TRUE),by=cluster] + +#Calculate per_Calory from resturants +CBNPoor9[,Per_Calory_Resturant:=(0.7*Resturant_Exp/EqSizeCalory)/Calory_Price] +for (col in c("Per_Calory_Resturant")) CBNPoor9[is.na(get(col)), (col) := 0] +CBNPoor9<-CBNPoor9[Per_Daily_Exp_Calories!=0] +CBNPoor9[,Per_Daily_Calories:=Per_Daily_Exp_Calories+Per_Calory_Resturant] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Calory_Resturant,Weight,na.rm = TRUE),by=cluster] + + +#sum of total food expenditures +CBNPoor9[,FoodExpenditure_Per_total:=FoodExpenditure_Per+(0.7*Resturant_Exp/EqSizeCalory)] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster] + +#Food expenditures (equal 2100 CCAL) +CBNPoor9[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Calories] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=ProvinceCode] + + + +#Calculations +CBNPoor9[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per_day,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(FoodExpenditure_Per,Weight,na.rm = TRUE),by=cluster] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] + + + +#Food Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBNPoor9[cluster==1] +Food_Povertyline1_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 2 +CBNPoorCluster<-CBNPoor9[cluster==2] +Food_Povertyline2_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 3 +CBNPoorCluster<-CBNPoor9[cluster==3] +Food_Povertyline3_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#cluster 4 +CBNPoorCluster<-CBNPoor9[cluster==4] +Food_Povertyline4_9<-weighted.mean(CBNPoorCluster$Bundle_Value,CBNPoorCluster$Weight,na.rm = TRUE) + +#ee<-CBNPoor[,.(Total_Exp_Month_Real,Total_Exp_Month,Total_Food_Month_Per2,Total_Exp_Month_Per_nondurable,Total_Exp_Month_nondurable_Real_Per,FoodExpenditure_Per,cluster)] +#mean(ee[,Total_Food_Month_Per2==Total_Exp_Month_nondurable_Real]) +#mean(ee[,Total_Food_Month_Per2<3500000]) +#ee<- ee[order(Total_Food_Month_Per2)] +#utils::View(CBN) +#for (col in c("Total_Food_Month_Per2")) CBN[is.na(get(col)), (col) := Total_Exp_Month_Per_nondurable] +c<-CBN[,.(FoodExpenditure_Per,FoodExpenditure_Per_total,Total_Exp_Month_Per_nondurable,Total_Exp_Month,Total_Food_Month_Per2,Poor,Decile,Weight,cluster)] + + +#########Iteration 10############### +#Sort Expenditure data +CBN<- CBN[order(Total_Food_Month_Per2)] +c<- c[order(Total_Food_Month_Per2)] + +#Indicate new poors +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1,1,0)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline1_9 & cluster==1 ,1,0)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline2_9 & cluster==2 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline3_9 & cluster==3 ,1,Poor10)] +CBN[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4,1,Poor10)] +c[,Poor10:=ifelse(FoodExpenditure_Per_total < Food_Povertyline4_9 & cluster==4 ,1,Poor10)] +CBN[,weighted.mean(Poor10,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor10<-CBN[Poor10==1] + +#Engel +#CBNPoor9<-CBNPoor9[,ratio1:=FoodExpenditure/Total_Exp_Month] +#CBNPoor9[,weighted.mean(ratio1,Weight),by=cluster] +#summary(CBNPoor9$ratio1) +CBN<-CBN[,ratio1:=FoodExpenditure/Total_Exp_Month] +CBN[,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN<-CBN[,ratio2:=ServiceExp/Total_Exp_Month] +CBN[,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + +#Engel-home ratio calculations +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,sum(HIndivNo),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio1,Weight),by=ProvinceCode][order(ProvinceCode)] + +CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9,weighted.mean(ratio2,Weight),by=ProvinceCode][order(ProvinceCode)] + + +# Poverty Line for each cluster +#cluster 1 +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<1.1*Food_Povertyline1_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline1_9] +UrbanEngel1<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total<0.9*Food_Povertyline1_9] +UrbanunderEngel1<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==1 & FoodExpenditure_Per_total>1.1*Food_Povertyline1_9] +UrbanaboveEngel1<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel1<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse1<-1/Engel1 +Povertyline1_9<-Engel_Reverse1*Food_Povertyline1_9 + +#cluster 2 +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<1.1*Food_Povertyline2_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline2_9] +UrbanEngel2<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total<0.9*Food_Povertyline2_9] +UrbanunderEngel2<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==2 & FoodExpenditure_Per_total>1.1*Food_Povertyline2_9] +UrbanaboveEngel2<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel2<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse2<-1/Engel2 +Povertyline2_9<-Engel_Reverse2*Food_Povertyline2_9 + +#cluster 3 +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<1.1*Food_Povertyline3_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline3_9] +UrbanEngel3<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total<0.9*Food_Povertyline3_9] +UrbanunderEngel3<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==3 & FoodExpenditure_Per_total>1.1*Food_Povertyline3_9] +UrbanaboveEngel3<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel3<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse3<-1/Engel3 +Povertyline3_9<-Engel_Reverse3*Food_Povertyline3_9 + +#cluster 4 +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<1.1*Food_Povertyline4_9 & FoodExpenditure_Per_total>0.90*Food_Povertyline4_9] +UrbanEngel4<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total<0.9*Food_Povertyline4_9] +UrbanunderEngel4<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +CBNPoorCluster<-CBN[cluster==4 & FoodExpenditure_Per_total>1.1*Food_Povertyline4_9] +UrbanaboveEngel4<-CBNPoorCluster[,.(HHID,Region,ProvinceCode,cluster,ratio1,FoodExpenditure_Per_total)] +Engel4<-weighted.mean(CBNPoorCluster$ratio1,CBNPoorCluster$Weight) +Engel_Reverse4<-1/Engel4 +Povertyline4_9<-Engel_Reverse4*Food_Povertyline4_9 + +UrbanEngel<-rbind(UrbanEngel1,UrbanEngel2,UrbanEngel3,UrbanEngel4) +save(UrbanEngel, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanEngel.rda")) +UrbanunderEngel<-rbind(UrbanunderEngel1,UrbanunderEngel2,UrbanunderEngel3,UrbanunderEngel4) +save(UrbanunderEngel, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanunderEngel.rda")) +UrbanaboveEngel<-rbind(UrbanaboveEngel1,UrbanaboveEngel2,UrbanaboveEngel3,UrbanaboveEngel4) +save(UrbanaboveEngel, file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanaboveEngel.rda")) + +Povertyline1_9<-4107570 +Povertyline2_9<-3642510 +Povertyline3_9<-5055730 +Povertyline4_9<-7689100 + + +#Indicate final poors +CBN<-CBN[,Total_Exp_Month_Per2:=Total_Exp_Month_Per_nondurable*RealPriceIndex] + +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline1_9 & cluster==1,1,0)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline2_9 & cluster==2,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline3_9 & cluster==3,1,Poor11)] +CBN[,Poor11:=ifelse(Total_Exp_Month_Per_nondurable < Povertyline4_9 & cluster==4,1,Poor11)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster] +CBNPoor11<-CBN[Poor11==1] + +CBN[,sum(Size*Weight),by=cluster][order(cluster)] +CBN[,sum(Size*Weight),by=.(cluster,Decile)][order(cluster,Decile)] +CBNPoor[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor11[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,sum(Size*Weight),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor9[,weighted.mean(Per_Daily_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight)] +CBN[,weighted.mean(Poor11,Weight),by=cluster][order(cluster)] +CBN[,weighted.mean(Poor11,Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBNPoor11[,sum(Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight),by=ProvinceCode][order(ProvinceCode)] +CBN[,sum(Size*Weight)] +CBNPoor11[,weighted.mean(FoodExpenditure_Per_total,Weight,na.rm = TRUE),by=cluster][order(cluster)] +CBNPoor11[,weighted.mean(Per_Daily_Exp_Calories,Weight,na.rm = TRUE),by=cluster][order(cluster)] + +############################## +###Real Prices for report### +############################## +#sum of total food expenditures +CBN[,FoodExpenditure_Per_total:=FoodExpenditure_Per] + +#Food expenditures (equal 2100 CCAL) +CBN<-CBN[Per_Daily_Exp_Calories>0] +CBN[,Bundle_Value:=FoodExpenditure_Per_total*2100/Per_Daily_Exp_Calories] +CBN[,weighted.mean(Bundle_Value,Weight,na.rm = TRUE),by=cluster] + +T_Bundle_Value<-subset(CBN, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_1<-CBN[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight)] +Indexes2_1<-Indexes2_1[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_total<-Indexes2_1[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_1<-Indexes_total[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +CBN_Poor<-CBN[Poor11==1] +T_Bundle_Value<-subset(CBN_Poor, ProvinceCode==2301, select=c(Bundle_Value,Home_Per_Metr,Weight)) +Tehran_Bundle_Value1<-weighted.mean(T_Bundle_Value$Bundle_Value,T_Bundle_Value$Weight,na.rm = TRUE) +Tehran_Bundle_Value2<-weighted.mean(T_Bundle_Value$Home_Per_Metr,T_Bundle_Value$Weight,na.rm = TRUE) +CBN_Poor[,RealPriceIndex1:=weighted.mean(Bundle_Value,Weight,na.rm = TRUE)/Tehran_Bundle_Value1,by=ProvinceCode] +CBN_Poor[,RealPriceIndex2:=weighted.mean(Home_Per_Metr,Weight,na.rm = TRUE)/Tehran_Bundle_Value2,by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex1,Weight),by=ProvinceCode] +CBN_Poor[,weighted.mean(RealPriceIndex2,Weight),by=ProvinceCode] +Indexes2_2<-CBN_Poor[,.(RealPriceIndex1,RealPriceIndex2,ProvinceCode,Weight,Poor11)] +Indexes2_2<-Indexes2_2[,RealPriceIndex:=(RealPriceIndex1+RealPriceIndex2)/2] +Indexes_finalpoor<-Indexes2_2[,lapply(.SD,weighted.mean,w=Weight,na.rm = TRUE),by=.(ProvinceCode)] +Indexes3_2<-Indexes_finalpoor[,.(ProvinceCode,RealPriceIndex1,RealPriceIndex2,RealPriceIndex)] +Indexes<-Indexes[,.(ProvinceCode,RealPriceIndex)] + +###Save Tables +CBN_Urban<-CBN +save(CBN_Urban, file = paste0(Settings$HEISProcessedPath,"CBN_Urban","95.rda")) + +CBNPoor_Urban<-CBNPoor11 +save(CBNPoor_Urban, file = paste0(Settings$HEISProcessedPath,"CBNPoor_Urban","95.rda")) + + +#utils::View(CBN) +for (col in c("GhandPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("HoboobatPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("RoghanPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("BerenjPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("NanPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("GooshtPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MorghPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MahiPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("ShirPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MastPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("PanirPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("TokhmemorghPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MivePrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("SabziPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("MakarooniPrice")) CBNPoor11[is.na(get(col)), (col) := 0] +for (col in c("SibzaminiPrice")) CBNPoor11[is.na(get(col)), (col) := 0] + +CBNPoor11<-CBNPoor11[,x:=GhandPrice*Ghandgram+HoboobatPrice*Hoboobatgram+RoghanPrice*Roghangram+BerenjPrice*Berenjgram+NanPrice*Nangram+GooshtPrice*Gooshtgram+MorghPrice*Morghgram+MahiPrice*Mahigram+ShirPrice*Shirgram+MastPrice*Mastgram+PanirPrice*Panirgram+TokhmemorghPrice*Tokhmemorghgram+MivePrice*Mivegram+SabziPrice*Sabzigram+MakarooniPrice*Makaroonigram+SibzaminiPrice*Sibzaminigram] +CBNPoor11[,weighted.mean((GhandPrice*Ghandgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((HoboobatPrice*Hoboobatgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((RoghanPrice*Roghangram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((BerenjPrice*Berenjgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((NanPrice*Nangram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((GooshtPrice*Gooshtgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MorghPrice*Morghgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MahiPrice*Mahigram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((ShirPrice*Shirgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MastPrice*Mastgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((PanirPrice*Panirgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((TokhmemorghPrice*Tokhmemorghgram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MivePrice*Mivegram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((SabziPrice*Sabzigram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((MakarooniPrice*Makaroonigram)/x,Weight),cluster==4] +CBNPoor11[,weighted.mean((SibzaminiPrice*Sibzaminigram)/x,Weight),cluster==4] + + +for (col in c("GhandPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("HoboobatPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("RoghanPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("BerenjPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("NanPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("GooshtPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MorghPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MahiPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("ShirPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MastPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("PanirPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("TokhmemorghPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MivePrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("SabziPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("MakarooniPrice")) CBN[is.na(get(col)), (col) := 0] +for (col in c("SibzaminiPrice")) CBN[is.na(get(col)), (col) := 0] + +CBN<-CBN[,x:=GhandPrice*Ghandgram+HoboobatPrice*Hoboobatgram+RoghanPrice*Roghangram+BerenjPrice*Berenjgram+NanPrice*Nangram+GooshtPrice*Gooshtgram+MorghPrice*Morghgram+MahiPrice*Mahigram+ShirPrice*Shirgram+MastPrice*Mastgram+PanirPrice*Panirgram+TokhmemorghPrice*Tokhmemorghgram+MivePrice*Mivegram+SabziPrice*Sabzigram+MakarooniPrice*Makaroonigram+SibzaminiPrice*Sibzaminigram] +CBN[,weighted.mean((GhandPrice*Ghandgram)/x,Weight)*103.5] +CBN[,weighted.mean((HoboobatPrice*Hoboobatgram)/x,Weight)*117] +CBN[,weighted.mean((RoghanPrice*Roghangram)/x,Weight)*111.5] +CBN[,weighted.mean((BerenjPrice*Berenjgram)/x,Weight)*114.3] +CBN[,weighted.mean((NanPrice*Nangram)/x,Weight)*110.8] +CBN[,weighted.mean((GooshtPrice*Gooshtgram)/x,Weight)*123.5] +CBN[,weighted.mean((MorghPrice*Morghgram)/x,Weight)*114.1] +CBN[,weighted.mean((MahiPrice*Mahigram)/x,Weight)*107.6] +CBN[,weighted.mean((ShirPrice*Shirgram)/x,Weight)*103.4] +CBN[,weighted.mean((MastPrice*Mastgram)/x,Weight)*106.1] +CBN[,weighted.mean((PanirPrice*Panirgram)/x,Weight)*106.8] +CBN[,weighted.mean((TokhmemorghPrice*Tokhmemorghgram)/x,Weight)*125.9] +CBN[,weighted.mean((MivePrice*Mivegram)/x,Weight)*97.1] +CBN[,weighted.mean((SabziPrice*Sabzigram)/x,Weight)*109.9] +CBN[,weighted.mean((MakarooniPrice*Makaroonigram)/x,Weight)*101.9] +CBN[,weighted.mean((SibzaminiPrice*Sibzaminigram)/x,Weight)*119.7] + +CBNUrban<-CBN[,.(HHID,Percentile,Poor2,Weight,ProvinceCode)] +save(CBNUrban, file=paste0(Settings$HEISProcessedPath,"Y",year,"CBNUrban.rda")) + +OldFoodUrban<-CBN[,.(HHID,Percentile,Poor9)] +save(OldFoodUrban, file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFoodUrban.rda")) + +OldFinalPoorUrban<-CBN[,.(HHID,Percentile,Poor11)] +save(OldFinalPoorUrban, file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFinalPoorUrban.rda")) + +endtime <- proc.time() + + +cat("\n\n============================\nIt took ") +cat(endtime-starttime) + diff --git a/R/Archive/Other Codes/Comparison.R b/R/Archive/Other Codes/Comparison.R new file mode 100644 index 00000000..b19ab402 --- /dev/null +++ b/R/Archive/Other Codes/Comparison.R @@ -0,0 +1,155 @@ +# Comparison +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +year<-95 + +#####################Compare Engle############################# +#load old results +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanEngel.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralEngel.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanaboveEngel.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralaboveEngel.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanunderEngel.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralunderEngel.rda")) + +#Engel<-rbind(UrbanEngel,RuralEngel) +#EngelUnder<-rbind(UrbanunderEngel,RuralunderEngel) +#EngelAbove<-rbind(UrbanaboveEngel,RuralaboveEngel) + +Engel<-UrbanEngel +EngelUnder<-UrbanunderEngel +EngelAbove<-UrbanaboveEngel + +EngelUnder<-EngelUnder[,Oldplace:=1] +Engel<-Engel[,Oldplace:=2] +EngelAbove<-EngelAbove[,Oldplace:=3] + +RecentEngel<-rbind(Engel,EngelUnder,EngelAbove) + +#load new results +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewUrban.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewRural.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewUnderUrban.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewUnderRural.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewAboveUrban.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewAboveRural.rda")) + +#EngleNew<-rbind(EngleNewUrban,EngleNewRural) +#EngleNewUnder<-rbind(EngleNewUnderUrban,EngleNewUnderRural) +#EngleNewAbove<-rbind(EngleNewAboveUrban,EngleNewAboveRural) + +EngleNew<-EngleNewUrban[NewArea==2301] +EngleNewUnder<-EngleNewUnderUrban[NewArea==2301] +EngleNewAbove<-EngleNewAboveUrban[NewArea==2301] + +EngleNewUnder<-EngleNewUnder[,Newplace:=1] +EngleNew<-EngleNew[,Newplace:=2] +EngleNewAbove<-EngleNewAbove[,Newplace:=3] + +AfterEngel<-rbind(EngleNew,EngleNewUnder,EngleNewAbove) + +#merge old and new +Total<-merge(AfterEngel,RecentEngel,by="HHID",all.x = TRUE) +Total2<-Total[Oldplace==Newplace] + +Total<-Total[,matrixplace:=ifelse(Oldplace==1 & Newplace==1,1, + ifelse(Oldplace==1 & Newplace==2,2, + ifelse(Oldplace==1 & Newplace==3,3, + ifelse(Oldplace==2 & Newplace==1,4, + ifelse(Oldplace==2 & Newplace==2,5, + ifelse(Oldplace==2 & Newplace==3,6, + ifelse(Oldplace==3 & Newplace==1,7, + ifelse(Oldplace==3 & Newplace==2,8,9))))))))] + +Total<-Total[,Engel:=weighted.mean(FoodExpenditure_Per_total/Total_Exp_Month_Per_nondurable,Weight),by=matrixplace] +Total<-Total[,.(Oldplace,Newplace,matrixplace,Engel)] +Total3<-Total[,.(.N,Engel=mean(Engel)),by=matrixplace] + +#########################Compare Final poors####################################### +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFinalPoorUrban.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFinalPoorRural.rda")) +OldFinalPoor<-rbind(OldFinalPoorUrban,OldFinalPoorRural) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) +NewFinalPoorUrban<-NewFinalPoor[Region=="Urban"] +NewFinalPoorRural<-NewFinalPoor[Region=="Rural"] + +FinalPoor<-merge(NewFinalPoor,OldFinalPoor,by="HHID",all.x=TRUE) +FinalPoor<-FinalPoor[,matrixplace:=ifelse(Poor11==0 & FinalPoor==0,1, + ifelse(Poor11==0 & FinalPoor==1,2, + ifelse(Poor11==1 & FinalPoor==0,3,4)))] + +FinalPoor<-FinalPoor[,.(Poor11,FinalPoor,matrixplace)] +FinalPoor<-FinalPoor[,.(.N),by=matrixplace] + +#########################Compare initial poors####################################### +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"OldfirstUrban.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"OldfirstRural.rda")) +Oldfirst<-rbind(OldfirstRural,OldfirstUrban) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FirstSMD.rda")) +FirstUrban<-FirstSMD[Region=="Urban"] +FirstRural<-FirstSMD[Region=="Rural"] + +Fisrt<-merge(FirstSMD,Oldfirst,by="HHID",all=TRUE) +Fisrt<-Fisrt[,matrixplace:=ifelse(Poor==0 & Realfirstpoor==0,1, + ifelse(Poor==0 & Realfirstpoor==1,2, + ifelse(Poor==1 & Realfirstpoor==0,3,4)))] + +Fisrt<-Fisrt[,.(Poor,Realfirstpoor,matrixplace)] +Fisrt<-Fisrt[,.(.N),by=matrixplace] + + +######################Compare final food poors############################# +#Compare final food poors +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"UrbanFinalfood.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"RuralFinalfood.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFoodUrban.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"OldFoodRural.rda")) + +OldFood<-rbind(OldFoodRural,OldFoodUrban) +FinalFood<-rbind(UrbanFinalfood,RuralFinalfood) + +Tehranfinalfood<-UrbanFinalfood[NewArea==2301] + +FoodPoors<-merge(OldFoodRural,RuralFinalfood,by="HHID",all = TRUE) +FoodPoors<-FoodPoors[,matrixplace:=ifelse(Poor9==0 & FinalFoodPoor==0,1, + ifelse(Poor9==0 & FinalFoodPoor==1,2, + ifelse(Poor9==1 & FinalFoodPoor==0,3,4)))] + +FoodPoors<-FoodPoors[,.(Poor9,FinalFoodPoor,matrixplace)] +FoodPoors<-FoodPoors[,.(.N),by=matrixplace] + + +#########################Compare initial poors- after realize####################################### +#Compare initial poors +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"CBNRural.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"CBNUrban.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor2.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor3.rda")) + +Oldpoors<-rbind(CBNUrban,CBNRural) +Newpoors<-rbind(MDU,MDR) +TotalPoors<-merge(Oldpoors,Newpoors,by="HHID",all = TRUE) +TotalPoors<-TotalPoors[,matrixplace:=ifelse(Poor2==0 & InitialPoor==0,1, + ifelse(Poor2==0 & InitialPoor==1,2, + ifelse(Poor2==1 & InitialPoor==0,3,4)))] + +TotalPoors<-TotalPoors[,.(Poor2,InitialPoor,matrixplace)] +TotalPoors<-TotalPoors[,.(.N),by=matrixplace] + + + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/Other Codes/FoodGroup-Data(removed 25).R b/R/Archive/Other Codes/FoodGroup-Data(removed 25).R new file mode 100644 index 00000000..61e573aa --- /dev/null +++ b/R/Archive/Other Codes/FoodGroup-Data(removed 25).R @@ -0,0 +1,103 @@ +# 25-FoodGroup-Data.R +# Builds the food group price-weight data.table for households +# +# Copyright © 2018: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(data.table) +library(stringr) +library(readxl) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + TFoodGroups <- data.table(read_excel(Settings$MetaDataFilePath,Settings$MDS_FoodGroups)) + +load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHBase.rda")) +BigFoodPrice <- HHBase[,.N,by=.(Region,NewArea)] +for(i in 1:nrow(TFoodGroups)){ + cat(paste0(TFoodGroups[i,FoodType],", ")) + + ThisFoodTypeTable <- data.table(read_excel(Settings$MetaDataFilePath,sheet=TFoodGroups[i,SheetName])) + ft <- ThisFoodTypeTable[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTF <- Tables[[paste0("U",year,tab)]] + RTF <- Tables[[paste0("R",year,tab)]] + TF <- rbind(UTF,RTF) + for(n in names(TF)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TF,n,names(ft)[x]) + } + if(year %in% 76:82){ + pcols <- intersect(names(TF),c("HHID","Code","Kilos", + "Price","Expenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + + TF[,Kilos:=as.numeric(Kilos)] + TF[,Price:=as.numeric(str_replace_all(Price,"[\r\n]",""))] + TF[,Expenditure:=as.numeric(Expenditure)] + + + TF[is.na(Kilos),Kilos:=0] + TF[,FGrams:=(Kilos*1000)/30] + } + if(year %in% 83:95){ + pcols <- intersect(names(TF),c("HHID","Code","Grams","Kilos", + "Price","Expenditure")) + TF <- TF[,pcols,with=FALSE] + TF <- TF[Code %in% ft$StartCode:ft$EndCode] + + TF[,Kilos:=as.numeric(Kilos)] + TF[,Grams:=as.numeric(Grams)] + TF[,Price:=as.numeric(str_replace_all(Price,"[\r\n]",""))] + TF[,Expenditure:=as.numeric(Expenditure)] + + TF[is.na(Grams),Grams:=0] + TF[is.na(Kilos),Kilos:=0] + TF[,FGrams:=(Kilos*1000+Grams)/30] + } + TF[is.na(Price) & !is.na(Expenditure) & !is.na(FGrams), Price:=Expenditure/FGrams] + TF[is.na(FGrams) & !is.na(Expenditure) & !is.na(Price), FGrams:=Expenditure/Price] + TF[is.na(Expenditure) & !is.na(FGrams) & !is.na(Price), Expenditure:=Price*FGrams] + + load(paste0(Settings$HEISWeightsPath,Settings$HEISWeightFileName,year,".rda")) + + TF <- merge(TF[,.(HHID,Code,Price,Expenditure,FGrams)], + HHBase[,.(HHID,Region,NewArea)], by="HHID") + TF <- merge(TF, HHWeights[,.(HHID,Weight)]) + TF1 <- TF[,.(P=sum(Expenditure*Weight,na.rm = TRUE)/sum(FGrams*Weight,na.rm = TRUE), + X=sum(Expenditure*Weight,na.rm = TRUE)/sum(Weight,na.rm = TRUE)), + by=.(Region,NewArea)] + + setnames(TF1,"P",paste0("P_",TFoodGroups[i,FoodType])) + setnames(TF1,"X",paste0("X_",TFoodGroups[i,FoodType])) + + BigFoodPrice <- merge(BigFoodPrice,TF1) +} +n <- names(BigFoodPrice) +w <- n%like% "X_" +s <- n[w] +BigFoodPrice[,TFX:=Reduce(`+`, .SD),.SDcols=s] +for(i in which(w)){ + BigFoodPrice$Sh=BigFoodPrice[,..i]/BigFoodPrice$TFX + setnames(BigFoodPrice,"Sh",paste(paste0("Sh",names(BigFoodPrice[,..i])))) +} +# n <- names(BigFoodPrice) +# w <- n%like% "ShX_" +# s <- n[w] +# BigFoodPrice[,TSh:=Reduce(`+`, .SD),.SDcols=s] +save(BigFoodPrice,file=paste0(Settings$HEISProcessedPath,"Y",year,"BigFoodPrice.rda")) +} +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) +cat(" seconds. ") diff --git a/R/Archive/Other Codes/OldPovertyLines.R b/R/Archive/Other Codes/OldPovertyLines.R new file mode 100644 index 00000000..aec2a7b0 --- /dev/null +++ b/R/Archive/Other Codes/OldPovertyLines.R @@ -0,0 +1,127 @@ +# PovertyLines.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalFoodPoor.rda")) + + EngleNewUrban1 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Urban" & NewArea==1] + EngleNewUrban2 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Urban" & NewArea==2] + EngleNewUrban3 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Urban" & NewArea==3] + EngleNewUrban4 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Urban" & NewArea==4] + EngleNewUrban<-rbind(EngleNewUrban1,EngleNewUrban2,EngleNewUrban3,EngleNewUrban4) + save(EngleNewUrban,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewUrban.rda")) + + + EngleNewRural1 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Rural" & NewArea==1] + EngleNewRural2 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Rural" & NewArea==2] + EngleNewRural3 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Rural" & NewArea==3] + EngleNewRural4 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Rural" & NewArea==4] + EngleNewRural5 <- MD[TFoodExpenditure_Per<1.1*FPLine & TFoodExpenditure_Per>0.9*FPLine & Region=="Rural" & NewArea==5] + EngleNewRural<-rbind(EngleNewRural1,EngleNewRural2,EngleNewRural3,EngleNewRural4,EngleNewRural5) + save(EngleNewRural,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewRural.rda")) + + EngleNewUnderUrban1 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Urban" & NewArea==1] + EngleNewUnderUrban2 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Urban" & NewArea==2] + EngleNewUnderUrban3 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Urban" & NewArea==3] + EngleNewUnderUrban4 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Urban" & NewArea==4] + EngleNewUnderUrban<-rbind(EngleNewUnderUrban1,EngleNewUnderUrban2,EngleNewUnderUrban3,EngleNewUnderUrban4) + save(EngleNewUnderUrban,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewUnderUrban.rda")) + + EngleNewUnderRural1 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Rural" & NewArea==1] + EngleNewUnderRural2 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Rural" & NewArea==2] + EngleNewUnderRural3 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Rural" & NewArea==3] + EngleNewUnderRural4 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Rural" & NewArea==4] + EngleNewUnderRural5 <- MD[TFoodExpenditure_Per<0.9*FPLine & Region=="Rural" & NewArea==5] + EngleNewUnderRural<-rbind(EngleNewUnderRural1,EngleNewUnderRural2,EngleNewUnderRural3,EngleNewUnderRural4,EngleNewUnderRural5) + save(EngleNewUnderRural,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewUnderRural.rda")) + + EngleNewAboveUrban1 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Urban" & NewArea==1] + EngleNewAboveUrban2 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Urban" & NewArea==2] + EngleNewAboveUrban3 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Urban" & NewArea==3] + EngleNewAboveUrban4 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Urban" & NewArea==4] + EngleNewAboveUrban<-rbind(EngleNewAboveUrban1,EngleNewAboveUrban2,EngleNewAboveUrban3,EngleNewAboveUrban4) + save(EngleNewAboveUrban,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewAboveUrban.rda")) + + EngleNewAboveRural1 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Rural" & NewArea==1] + EngleNewAboveRural2 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Rural" & NewArea==2] + EngleNewAboveRural3 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Rural" & NewArea==3] + EngleNewAboveRural4 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Rural" & NewArea==4] + EngleNewAboveRural5 <- MD[TFoodExpenditure_Per>1.1*FPLine & Region=="Rural" & NewArea==5] + EngleNewAboveRural<-rbind(EngleNewAboveRural1,EngleNewAboveRural2,EngleNewAboveRural3,EngleNewAboveRural4,EngleNewAboveRural5) + save(EngleNewAboveRural,file=paste0(Settings$HEISProcessedPath,"Y",year,"EngleNewAboveRural.rda")) + + EngleD <- MD[ TFoodExpenditure_Per>0.9*FPLine & TFoodExpenditure_Per<1.1*FPLine, + .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,cluster3)] + EngleP <- MD[ TFoodExpenditure_Per>0.8*FPLine & TFoodExpenditure_Per<1.2*FPLine, + .(.N,Engel=weighted.mean(TFoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,NewArea_Name)] + save(EngleP,file = "EngleP.rda") + EngleD[,PovertyLine:=FPLine/Engel] + EngleP[,PovertyLine:=FPLine/Engel] + MD <- merge(MD,EngleD[,.(cluster3,Region,PovertyLine,Engel)],by=c("Region","cluster3")) + #MD<-MD[Region=="Urban" & NewArea==2301] + MD[,FinalPoor:=ifelse(Total_Exp_Month_Per < PovertyLine,1,0 )] + cat(MD[,weighted.mean(FinalPoor,Weight*Size)],"\t", + MD[,weighted.mean(PovertyLine,Weight*Size)],"\t", + MD[,weighted.mean(Engel,Weight*Size)],"\t", + MD[,weighted.mean(FPLine,Weight*Size)]) + MD[,weighted.mean(FinalPoor,Weight*Size),by=c("Region","NewArea_Name")][order(Region,NewArea_Name)] + MD[,weighted.mean(FinalPoor,Weight),by=c("Region")] + save(MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) +} + +x<-EngleP[Region=="Rural",.(Engel,NewArea_Name)] +x$NewArea <- factor(x$NewArea, levels = x$NewArea[order(x$Engel)]) +ggplot(x, aes(x = x$NewArea, y = x$Engel)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +y<-EngleP[Region=="Urban",.(Engel,NewArea_Name)] +y$NewArea <- factor(y$NewArea, levels = y$NewArea[order(y$Engel)]) +ggplot(y, aes(x = y$NewArea, y = y$Engel)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + + +x2<-EngleP[Region=="Rural",.(FPLine,NewArea_Name)] +x2$NewArea <- factor(x2$NewArea, levels = x2$NewArea[order(x2$FPLine)]) +ggplot(x2, aes(x = x2$NewArea, y = x2$FPLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +y2<-EngleP[Region=="Urban",.(FPLine,NewArea_Name)] +y2$NewArea <- factor(y2$NewArea, levels = y2$NewArea[order(y2$FPLine)]) +ggplot(y2, aes(x = y2$NewArea, y = y2$FPLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +x3<-EngleP[Region=="Rural",.(PovertyLine,NewArea_Name)] +x3$NewArea <- factor(x3$NewArea, levels = x3$NewArea[order(x3$PovertyLine)]) +ggplot(x3, aes(x = x3$NewArea, y = x3$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +y3<-EngleP[Region=="Urban",.(PovertyLine,NewArea_Name)] +y3$NewArea <- factor(y3$NewArea, levels = y3$NewArea[order(y3$PovertyLine)]) +ggplot(y3, aes(x = y3$NewArea, y = y3$PovertyLine)) + theme_bw() + geom_bar(stat = "identity") + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + +#NewFinalPoor<-MD[,.(HHID,Region,NewArea,NewArea,FinalPoor)] +NewFinalPoor<-MD[,.(HHID,Region,NewArea,NewArea,Weight,HAge,HSex, + ProvinceCode,Size,HLiterate,HEduLevel0,Area, + Rooms,MetrPrice, HActivityState,FinalPoor)] + +save(NewFinalPoor,file=paste0(Settings$HEISProcessedPath,"Y",year,"NewFinalPoor.rda")) +Final<-NewFinalPoor[,.(HHID,Region,Weight,FinalPoor)] +save(Final,file=paste0(Settings$HEISProcessedPath,"Y",year,"Final.rda")) + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/Other Codes/PriceIndex.rda b/R/Archive/Other Codes/PriceIndex.rda new file mode 100644 index 00000000..e505fb6f Binary files /dev/null and b/R/Archive/Other Codes/PriceIndex.rda differ diff --git a/R/Archive/Other Codes/PriceIndex95.rda b/R/Archive/Other Codes/PriceIndex95.rda new file mode 100644 index 00000000..605078b0 Binary files /dev/null and b/R/Archive/Other Codes/PriceIndex95.rda differ diff --git a/R/Archive/Other Codes/TehranPoors.rda b/R/Archive/Other Codes/TehranPoors.rda new file mode 100644 index 00000000..1ce1ddb2 Binary files /dev/null and b/R/Archive/Other Codes/TehranPoors.rda differ diff --git a/R/Archive/Other Codes/Urban2.jpeg b/R/Archive/Other Codes/Urban2.jpeg new file mode 100644 index 00000000..308ec816 Binary files /dev/null and b/R/Archive/Other Codes/Urban2.jpeg differ diff --git a/R/Archive/Other Codes/Y87ShCode.rda b/R/Archive/Other Codes/Y87ShCode.rda new file mode 100644 index 00000000..17ce9590 Binary files /dev/null and b/R/Archive/Other Codes/Y87ShCode.rda differ diff --git a/R/Archive/Other Codes/Y88ShCode.rda b/R/Archive/Other Codes/Y88ShCode.rda new file mode 100644 index 00000000..d1ada6a9 Binary files /dev/null and b/R/Archive/Other Codes/Y88ShCode.rda differ diff --git a/R/Archive/Other Codes/Y89ShCode.rda b/R/Archive/Other Codes/Y89ShCode.rda new file mode 100644 index 00000000..21431a84 Binary files /dev/null and b/R/Archive/Other Codes/Y89ShCode.rda differ diff --git a/R/Archive/Other Codes/Y90ShCode.rda b/R/Archive/Other Codes/Y90ShCode.rda new file mode 100644 index 00000000..dd6d333d Binary files /dev/null and b/R/Archive/Other Codes/Y90ShCode.rda differ diff --git a/R/Archive/Other Codes/Y91ShCode.rda b/R/Archive/Other Codes/Y91ShCode.rda new file mode 100644 index 00000000..86f916b8 Binary files /dev/null and b/R/Archive/Other Codes/Y91ShCode.rda differ diff --git a/R/Archive/Other Codes/aaape.R b/R/Archive/Other Codes/aaape.R new file mode 100644 index 00000000..02a0601c --- /dev/null +++ b/R/Archive/Other Codes/aaape.R @@ -0,0 +1,324 @@ +rm(list=ls()) + +cat("\n\n================ Admin Area Analysis Panel Estimates =================================\n") + +library(data.table) +library(texreg) + + +load("D:/HEIS/DataProcessed/BigD.rda") +TXI <- dcast(data.table(table(BigD[,.(IGeo4,Year)])), IGeo4 ~ Year) +TXF <- dcast(data.table(table(BigD[,.(FGeo4,Year)])), FGeo4 ~ Year) +TX <- dcast(data.table(table(BigD[,.(Geo4,Year)])), Geo4 ~ Year) +View(TXI) +a <- which(TXI==0,arr.ind = TRUE) +a <- unique(a[,1]) +BigD <- BigD[! IGeo4 %in% c("2201","0912","0910")] # Remove Abu Musa, Qaenat & Tabas + +# Province Panel ============================================ +PP <- BigD[,list(c=weighted.mean(log(RXNDpc+1),Weight), + x=weighted.mean(log(RXTpc+1),Weight), + d=weighted.mean(log(RXDpc+1),Weight), + size=weighted.mean(Size,Weight), + age=weighted.mean(HAge,Weight), + HHCount=.N, + Pop=sum(Weight)), + by=c("Year","FGeo2")] + +PP[,idx:=paste0("Pr",FGeo2)] +PP[,fg:=as.integer(FGeo2)] + +library(haven) +write_dta(PP,"PP.dta") + +PP[,NPD:=NULL] +PP[FGeo2=="28" & Year==83, NPD:=1] +PP[FGeo2=="29" & Year==83, NPD:=1] +PP[FGeo2=="30" & Year==90, NPD:=1] +PP[is.na(NPD),NPD:=0] + +PP[,SP:="0"] +PP[FGeo2 %in% c("28","29","30"), SP:=FGeo2] + +PPx <- PP[,.(c=weighted.mean(c,Pop)),by=.(Year,SP)] + +qplot(Year,NPD,data = PP,col=FGeo2,geom = "line") +qplot(Year,c,data = PP,col=FGeo2,geom = "line") +qplot(Year,c,data = PPx,col=factor(SP),geom = "line") + +library(plm) +pp <- pdata.frame(PP,index = c("idx","Year")) +pp$dc <- diff(pp$c) + + +# summary(plm(diff(c) ~ lag(NPD,0:3), data = pp)) +# summary(plm(diff(c) ~ NPD, data = pp)) +# summary(plm(diff(c) ~ lag(diff(c)) + NPD, data = pp)) +# summary(plm(diff(c) ~ lag(diff(c)) + lag(NPD), data = pp)) +# summary(plm(diff(c) ~ lag(diff(c)) + lag(NPD,0:2), data = pp)) +# +# summary(plm(dx ~ l.dx + NPD + l.NPD, data = pp)) +# +# pb <- plm(dc ~ l.dc + NPD, data = pp, model = "between") +# pfi <- plm(dc ~ l.dc + NPD, data = pp, model = "within", effect = "individual") +# pft <- plm(dc ~ l.dc + NPD, data = pp, model = "within", effect = "time") +# pfd <- plm(dc ~ l.dc + NPD, data = pp, model = "within", effect = "twoways") +# po <- plm(dc ~ l.dc + NPD, data = pp, model = "pooling") +# pr <- plm(dc ~ l.dc + NPD, data = pp, model = "random") +# +# pFtest(pfi,po) +# pFtest(pft,po) +# pFtest(pfd,po) +# +# summary(pb) +# Province Cohort10 Panel ============================================ +PCP10 <- BigD[,list(c=weighted.mean(log(RXNDpc+1),Weight), + x=weighted.mean(log(RXTpc+1),Weight), + d=weighted.mean(log(RXDpc+1),Weight), + size=weighted.mean(Size,Weight), + age=weighted.mean(HAge,Weight), + HHCount=.N, + Pop=sum(Weight)), + by=c("Year","FGeo2","Cohort10")] + +PCP10 <- PCP10[!((Cohort10=="1276-85") | (Cohort10=="1286-95") | + (Cohort10=="1296-05" & Year >=91) | + (Cohort10=="1356-65" & Year <=80) | + (Cohort10=="1366-75" & Year <=90) | + (Cohort10=="1376-85")),] +PCP10[,idx:=paste0("Pr",FGeo2,":",Cohort10)] + +PCP10[,NPD:=NULL] +PCP10[FGeo2=="28" & Year==83, NPD:=1] +PCP10[FGeo2=="29" & Year==83, NPD:=1] +PCP10[FGeo2=="30" & Year==90, NPD:=1] +PCP10[is.na(NPD),NPD:=0] + +library(plm) +pcp10 <- pdata.frame(PCP10,index = c("idx","Year")) +pcp10$d.c <- diff(pcp10$c) +pcp10$l.d.c <- lag(diff(pcp10$c)) +pcp10$l2.d.c <- lag(diff(pcp10$c),2) +pcp10$d.x <- diff(pcp10$x) +pcp10$l.d.x <- lag(diff(pcp10$x)) +pcp10$l2.d.x <- lag(diff(pcp10$x),2) +pcp10$d.d <- diff(pcp10$d) +pcp10$l.d.d <- lag(diff(pcp10$d)) +pcp10$l2.d.d <- lag(diff(pcp10$d),2) +pcp10$l.NPD <- lag(pcp10$NPD) +pcp10$l2.NPD <- lag(pcp10$NPD,2) +pcp10$l3.NPD <- lag(pcp10$NPD,3) + +mcl0 <- plm(d.c ~ l.d.c + NPD , data = pcp10) +mcl1 <- plm(d.c ~ l.d.c + NPD + l.NPD, data = pcp10) +mcl2 <- plm(d.c ~ l.d.c + NPD + l.NPD + l2.NPD , data = pcp10) +mcl3 <- plm(d.c ~ l.d.c + NPD + l.NPD + l2.NPD + l3.NPD, data = pcp10) + +mcn0 <- plm(d.c ~ NPD , data = pcp10) +mcn1 <- plm(d.c ~ NPD + l.NPD, data = pcp10) +mcn2 <- plm(d.c ~ NPD + l.NPD + l2.NPD , data = pcp10) +mcn3 <- plm(d.c ~ NPD + l.NPD + l2.NPD + l3.NPD, data = pcp10) + +screenreg(list(mcl0,mcl1,mcl2,mcl3, + mcn0,mcn1,mcn2,mcn3)) +htmlreg(file = "D:/Dropbox/ToPublish/AdminAreas/pcp10-c.doc", + list(mcl0,mcl1,mcl2,mcl3, + mcn0,mcn1,mcn2,mcn3)) + +mxl0 <- plm(d.x ~ l.d.x + NPD , data = pcp10) +mxl1 <- plm(d.x ~ l.d.x + NPD + l.NPD, data = pcp10) +mxl2 <- plm(d.x ~ l.d.x + NPD + l.NPD + l2.NPD , data = pcp10) +mxl3 <- plm(d.x ~ l.d.x + NPD + l.NPD + l2.NPD + l3.NPD, data = pcp10) + +mxn0 <- plm(d.x ~ NPD , data = pcp10) +mxn1 <- plm(d.x ~ NPD + l.NPD, data = pcp10) +mxn2 <- plm(d.x ~ NPD + l.NPD + l2.NPD , data = pcp10) +mxn3 <- plm(d.x ~ NPD + l.NPD + l2.NPD + l3.NPD, data = pcp10) + +screenreg(list(mxl0,mxl1,mxl2,mxl3, + mxn0,mxn1,mxn2,mxn3)) +htmlreg(file = "D:/Dropbox/ToPublish/AdminAreas/pcp10-x.doc", + list(mxl0,mxl1,mxl2,mxl3, + mxn0,mxn1,mxn2,mxn3)) + +mdl0 <- plm(d.d ~ l.d.d + NPD , data = pcp10) +mdl1 <- plm(d.d ~ l.d.d + NPD + l.NPD, data = pcp10) +mdl2 <- plm(d.d ~ l.d.d + NPD + l.NPD + l2.NPD , data = pcp10) +mdl3 <- plm(d.d ~ l.d.d + NPD + l.NPD + l2.NPD + l3.NPD, data = pcp10) + +mdn0 <- plm(d.d ~ NPD , data = pcp10) +mdn1 <- plm(d.d ~ NPD + l.NPD, data = pcp10) +mdn2 <- plm(d.d ~ NPD + l.NPD + l2.NPD , data = pcp10) +mdn3 <- plm(d.d ~ NPD + l.NPD + l2.NPD + l3.NPD, data = pcp10) + +screenreg(list(mdl0,mdl1,mdl2,mdl3, + mdn0,mdn1,mdn2,mdn3)) + +# Province Cohort5 Panel ============================================ +PCP5 <- BigD[,list(c=weighted.mean(log(RXNDpc+1),Weight), + x=weighted.mean(log(RXTpc+1),Weight), + d=weighted.mean(log(RXDpc+1),Weight), + size=weighted.mean(Size,Weight), + age=weighted.mean(HAge,Weight), + HHCount=.N, + Pop=sum(Weight)), + by=c("Year","FGeo2","Cohort5")] +ifelse(table(PCP5[HHCount>10,.(Cohort5,Year)])/table(PCP5[,.(Cohort5,Year)])>0.2,1,0) + +PCP5 <- PCP5[!((Cohort5=="1276-80") |(Cohort5=="1281-85") | (Cohort5=="1286-90") |(Cohort5=="1291-95") | (Cohort5=="1296-00") | + (Cohort5=="1296-00" & Year >=82) | + (Cohort5=="1301-05" & Year >=93) | + (Cohort5=="1356-60" & Year <=77) | + (Cohort5=="1361-65" & Year <=84) | + (Cohort5=="1366-70" & Year <=87) | + (Cohort5=="1371-75") | (Cohort5=="1376-80") | (Cohort5=="1381-85") | (Cohort5=="1386-90")),] +PCP5[,idx:=paste0("Pr",FGeo2,":",Cohort5)] + +PCP5[,NPD:=NULL] +PCP5[FGeo2=="28" & Year==83, NPD:=1] +PCP5[FGeo2=="29" & Year==83, NPD:=1] +PCP5[FGeo2=="30" & Year==90, NPD:=1] +PCP5[is.na(NPD),NPD:=0] + +library(plm) +pcp5 <- pdata.frame(PCP5,index = c("idx","Year")) +pcp5$d.c <- diff(pcp5$c) +pcp5$l.d.c <- lag(diff(pcp5$c)) +pcp5$l2.d.c <- lag(diff(pcp5$c),2) +pcp5$d.x <- diff(pcp5$x) +pcp5$l.d.x <- lag(diff(pcp5$x)) +pcp5$l2.d.x <- lag(diff(pcp5$x),2) +pcp5$d.d <- diff(pcp5$d) +pcp5$l.d.d <- lag(diff(pcp5$d)) +pcp5$l2.d.d <- lag(diff(pcp5$d),2) +pcp5$l.NPD <- lag(pcp5$NPD) +pcp5$l2.NPD <- lag(pcp5$NPD,2) +pcp5$l3.NPD <- lag(pcp5$NPD,3) + +mcl0 <- plm(d.c ~ l.d.c + NPD , data = pcp5) +mcl1 <- plm(d.c ~ l.d.c + NPD + l.NPD, data = pcp5) +mcl2 <- plm(d.c ~ l.d.c + NPD + l.NPD + l2.NPD , data = pcp5) +mcl3 <- plm(d.c ~ l.d.c + NPD + l.NPD + l2.NPD + l3.NPD, data = pcp5) + +mcn0 <- plm(d.c ~ NPD , data = pcp5) +mcn1 <- plm(d.c ~ NPD + l.NPD, data = pcp5) +mcn2 <- plm(d.c ~ NPD + l.NPD + l2.NPD , data = pcp5) +mcn3 <- plm(d.c ~ NPD + l.NPD + l2.NPD + l3.NPD, data = pcp5) + +screenreg(list(mcl0,mcl1,mcl2,mcl3, + mcn0,mcn1,mcn2,mcn3)) +htmlreg(file = "D:/Dropbox/ToPublish/AdminAreas/pcp5-c.doc", + list(mcl0,mcl1,mcl2,mcl3, + mcn0,mcn1,mcn2,mcn3)) + +mxl0 <- plm(d.x ~ l.d.x + NPD , data = pcp5) +mxl1 <- plm(d.x ~ l.d.x + NPD + l.NPD, data = pcp5) +mxl2 <- plm(d.x ~ l.d.x + NPD + l.NPD + l2.NPD , data = pcp5) +mxl3 <- plm(d.x ~ l.d.x + NPD + l.NPD + l2.NPD + l3.NPD, data = pcp5) + +mxn0 <- plm(d.x ~ NPD , data = pcp5) +mxn1 <- plm(d.x ~ NPD + l.NPD, data = pcp5) +mxn2 <- plm(d.x ~ NPD + l.NPD + l2.NPD , data = pcp5) +mxn3 <- plm(d.x ~ NPD + l.NPD + l2.NPD + l3.NPD, data = pcp5) + +screenreg(list(mxl0,mxl1,mxl2,mxl3, + mxn0,mxn1,mxn2,mxn3)) +htmlreg(file = "D:/Dropbox/ToPublish/AdminAreas/pcp5-x.doc", + list(mxl0,mxl1,mxl2,mxl3, + mxn0,mxn1,mxn2,mxn3)) + +mdl0 <- plm(d.d ~ l.d.d + NPD , data = pcp5) +mdl1 <- plm(d.d ~ l.d.d + NPD + l.NPD, data = pcp5) +mdl2 <- plm(d.d ~ l.d.d + NPD + l.NPD + l2.NPD , data = pcp5) +mdl3 <- plm(d.d ~ l.d.d + NPD + l.NPD + l2.NPD + l3.NPD, data = pcp5) + +mdn0 <- plm(d.d ~ NPD , data = pcp5) +mdn1 <- plm(d.d ~ NPD + l.NPD, data = pcp5) +mdn2 <- plm(d.d ~ NPD + l.NPD + l2.NPD , data = pcp5) +mdn3 <- plm(d.d ~ NPD + l.NPD + l2.NPD + l3.NPD, data = pcp5) + +screenreg(list(mdl0,mdl1,mdl2,mdl3, + mdn0,mdn1,mdn2,mdn3)) + +# County Level Panel ======================================== +CP <- BigD[,list(c=weighted.mean(log(RXNDpc+1),Weight), + x=weighted.mean(log(RXTpc+1),Weight), + d=weighted.mean(log(RXDpc+1),Weight), + size=weighted.mean(Size,Weight), + age=weighted.mean(HAge,Weight), + HHCount=.N, + FGeo2=FGeo2[1], + Pop=sum(Weight)), + by=c("Year","IGeo4")] +CP[,idx:=paste0("Pr",IGeo4)] + +CP[,NPD:=NULL] +CP[,NPCD:=NULL] + +CP[FGeo2=="28" & Year==83, NPD:=1] +CP[FGeo2=="29" & Year==83, NPD:=1] +CP[FGeo2=="30" & Year==90, NPD:=1] + +CP[IGeo4=="0902" & Year==83, NPCD:=1] +CP[IGeo4=="0903" & Year==83, NPCD:=1] +CP[IGeo4=="2305" & Year==90, NPCD:=1] + + +CP[is.na(NPD),NPD:=0] +CP[is.na(NPCD),NPCD:=0] + + +library(plm) +cp <- pdata.frame(CP,index = c("idx","Year")) + +cp$d.c <- diff(cp$c) +cp$l.d.c <- lag(diff(cp$c)) +cp$l2.d.c <- lag(diff(cp$c),2) +cp$d.x <- diff(cp$x) +cp$l.d.x <- lag(diff(cp$x)) +cp$l2.d.x <- lag(diff(cp$x),2) +cp$d.d <- diff(cp$d) +cp$l.d.d <- lag(diff(cp$d)) +cp$l2.d.d <- lag(diff(cp$d),2) +cp$l.NPD <- lag(cp$NPD) +cp$l2.NPD <- lag(cp$NPD,2) +cp$l3.NPD <- lag(cp$NPD,3) +cp$l.NPCD <- lag(cp$NPCD) +cp$l2.NPCD <- lag(cp$NPCD,2) +cp$l3.NPCD <- lag(cp$NPCD,3) + +mcl0N <- plm(d.c ~ l.d.c + NPD , data = cp) +mcl1N <- plm(d.c ~ l.d.c + NPD + l.NPD, data = cp) +mcl2N <- plm(d.c ~ l.d.c + NPD + l.NPD + l2.NPD , data = cp) +mcl3N <- plm(d.c ~ l.d.c + NPD + l.NPD + l2.NPD + l3.NPD, data = cp) +mclN0 <- plm(d.c ~ l.d.c + NPCD , data = cp) +mclN1 <- plm(d.c ~ l.d.c + NPCD + l.NPCD, data = cp) +mclN2 <- plm(d.c ~ l.d.c + NPCD + l.NPCD + l2.NPCD , data = cp) +mclN3 <- plm(d.c ~ l.d.c + NPCD + l.NPCD + l2.NPCD + l3.NPCD, data = cp) +mcl00 <- plm(d.c ~ l.d.c + NPD + NPCD , data = cp) +mcl11 <- plm(d.c ~ l.d.c + NPD + l.NPD + NPCD + l.NPCD, data = cp) +mcl22 <- plm(d.c ~ l.d.c + NPD + l.NPD + l2.NPD + NPCD + l.NPCD+ l2.NPCD , data = cp) + +mcn0N <- plm(d.c ~ NPD , data = cp) +mcn1N <- plm(d.c ~ NPD + l.NPD, data = cp) +mcn2N <- plm(d.c ~ NPD + l.NPD + l2.NPD , data = cp) +mcn3N <- plm(d.c ~ NPD + l.NPD + l2.NPD + l3.NPD, data = cp) +mcnN0 <- plm(d.c ~ NPCD , data = cp) +mcnN1 <- plm(d.c ~ NPCD + l.NPCD, data = cp) +mcnN2 <- plm(d.c ~ NPCD + l.NPCD + l2.NPCD , data = cp) +mcnN3 <- plm(d.c ~ NPCD + l.NPCD + l2.NPCD + l3.NPCD, data = cp) +mcn00 <- plm(d.c ~ NPD + NPCD , data = cp) +mcn11 <- plm(d.c ~ NPD + l.NPD + NPCD + l.NPCD, data = cp) +mcn22 <- plm(d.c ~ NPD + l.NPD + l2.NPD + NPCD + l.NPCD+ l2.NPCD , data = cp) + +screenreg(list(mcl0N,mcl1N,mcl2N,mclN0,mclN1,mclN2, + mcl00,mcl11,mcl22)) +screenreg(list(mcn0N,mcn1N,mcn2N,mcnN0,mcnN1,mcnN2, + mcn00,mcn11,mcn22)) + +htmlreg(file = "D:/Dropbox/ToPublish/AdminAreas/cp-c-1.doc", + list(mcl0N,mcl1N,mcl2N,mclN0,mclN1,mclN2, + mcl00,mcl11,mcl22)) +htmlreg(file = "D:/Dropbox/ToPublish/AdminAreas/cp-c-2.doc", + list(mcn0N,mcn1N,mcn2N,mcnN0,mcnN1,mcnN2, + mcn00,mcn11,mcn22)) diff --git a/R/Archive/Other Codes/dt2.rda b/R/Archive/Other Codes/dt2.rda new file mode 100644 index 00000000..80c9471f Binary files /dev/null and b/R/Archive/Other Codes/dt2.rda differ diff --git a/R/Archive/Other Codes/dt4Urban.rda b/R/Archive/Other Codes/dt4Urban.rda new file mode 100644 index 00000000..97e10c0f Binary files /dev/null and b/R/Archive/Other Codes/dt4Urban.rda differ diff --git a/R/Archive/Other Codes/dt4Urban91.rda b/R/Archive/Other Codes/dt4Urban91.rda new file mode 100644 index 00000000..97e10c0f Binary files /dev/null and b/R/Archive/Other Codes/dt4Urban91.rda differ diff --git a/R/Archive/Other Codes/dt5Rural.rda b/R/Archive/Other Codes/dt5Rural.rda new file mode 100644 index 00000000..cfc6870f Binary files /dev/null and b/R/Archive/Other Codes/dt5Rural.rda differ diff --git a/R/Archive/Other Codes/educexp.R b/R/Archive/Other Codes/educexp.R new file mode 100644 index 00000000..83228dd7 --- /dev/null +++ b/R/Archive/Other Codes/educexp.R @@ -0,0 +1,133 @@ +# 110-Education Expenditures.R +# 2019: Arin Shahbazian + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Education Expenditures =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) + +EducationTables <- data.table(read_excel(Settings$MetaDataFilePath,sheet=Settings$MDS_Education)) + +#Introduce Groups +PrimaryschoolReg<-101111:101115 +HighschoolReg<-102111:102215 +PreUniversityReg<-103111:103116 +UniversityReg<-104111:104115 +OtherClassReg<-105111:105115 + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,",")) + load(file=paste0(Settings$HEISRawPath,"Y",year,"Raw.rda")) + ft <- EducationTables[Year==year] + tab <- ft$Table + if(is.na(tab)) + next + UTEducation <- Tables[[paste0("U",year,tab)]] + RTEducation <- Tables[[paste0("R",year,tab)]] + TEducations1 <- rbind(UTEducation,RTEducation) + for(n in names(TEducations1)){ + x <- which(ft==n) + if(length(x)>0) + setnames(TEducations1,n,names(ft)[x]) + } + + + # cat(" PrimaryschoolReg, ") + + TEducations <- TEducations1[Code %in% PrimaryschoolReg] + TEducations[,a:=NULL] + TEducations[,b:=NULL] + TEducations[,c:=NULL] + TEducations[,d:=NULL] + TEducations[,Code:=NULL] + TEducations[is.na(TEducations)] <- 0 + names(TEducations) <- c("HHID", "PrimaryschoolRegExp") + TEducations[,PrimaryschoolRegExp:=as.numeric(PrimaryschoolRegExp)/12] + PrimaryschoolRegExp <- TEducations[,lapply(.SD,sum),by=HHID] + save(PrimaryschoolRegExp, file = paste0(Settings$HEISProcessedPath,"Y",year,"PrimaryschoolRegExp.rda")) + + #cat(" HighschoolReg, ") + + TEducations <- TEducations1[Code %in% HighschoolReg] + TEducations[,a:=NULL] + TEducations[,b:=NULL] + TEducations[,c:=NULL] + TEducations[,d:=NULL] + TEducations[,Code:=NULL] + TEducations[is.na(TEducations)] <- 0 + names(TEducations) <- c("HHID", "HighschoolRegExp") + TEducations[,HighschoolRegExp:=as.numeric(HighschoolRegExp)/12] + HighschoolRegExp <- TEducations[,lapply(.SD,sum),by=HHID] + save(HighschoolRegExp, file = paste0(Settings$HEISProcessedPath,"Y",year,"HighschoolRegExp.rda")) + + + + #cat(" PreUniversityReg, ") + + TEducations <- TEducations1[Code %in% PreUniversityReg] + TEducations[,a:=NULL] + TEducations[,b:=NULL] + TEducations[,c:=NULL] + TEducations[,d:=NULL] + TEducations[,Code:=NULL] + TEducations[is.na(TEducations)] <- 0 + names(TEducations) <- c("HHID", "PreUniversityRegExp") + TEducations[,PreUniversityRegExp:=as.numeric(PreUniversityRegExp)/12] + PreUniversityRegExp <- TEducations[,lapply(.SD,sum),by=HHID] + save(PreUniversityRegExp, file = paste0(Settings$HEISProcessedPath,"Y",year,"PreUniversityRegExp.rda")) + + #cat(" UniversityReg, ") + + TEducations <- TEducations1[Code %in% UniversityReg] + TEducations[,a:=NULL] + TEducations[,b:=NULL] + TEducations[,c:=NULL] + TEducations[,d:=NULL] + TEducations[,Code:=NULL] + TEducations[is.na(TEducations)] <- 0 + names(TEducations) <- c("HHID", "UniversityRegExp") + TEducations[,UniversityRegExp:=as.numeric(UniversityRegExp)/12] + UniversityRegExp <- TEducations[,lapply(.SD,sum),by=HHID] + save(UniversityRegExp, file = paste0(Settings$HEISProcessedPath,"Y",year,"UniversityRegExp.rda")) + + #cat(" OtherClassReg, ") + + TEducations <- TEducations1[Code %in% OtherClassReg] + TEducations[,a:=NULL] + TEducations[,b:=NULL] + TEducations[,c:=NULL] + TEducations[,d:=NULL] + TEducations[,Code:=NULL] + TEducations[is.na(TEducations)] <- 0 + names(TEducations) <- c("HHID", "OtherClassRegExp") + TEducations[,OtherClassRegExp:=as.numeric(OtherClassRegExp)/12] + OtherClassRegExp <- TEducations[,lapply(.SD,sum),by=HHID] + save(OtherClassRegExp, file = paste0(Settings$HEISProcessedPath,"Y",year,"OtherClassRegExp.rda")) + + + #merge Education Consumption + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Education.rda")) + EducationExp<-merge(EducData,PrimaryschoolRegExp,all = TRUE) + EducationExp<-merge(EducationExp,HighschoolRegExp,all = TRUE) + EducationExp<-merge(EducationExp,PreUniversityRegExp,all = TRUE) + EducationExp<-merge(EducationExp,UniversityRegExp,all = TRUE) + EducationExp<-merge(EducationExp,OtherClassRegExp,all = TRUE) + + EducationExp[is.na(EducationExp)] <- 0 + + cat(EducationExp[,mean(EducExpenditure,na.rm=TRUE)]) + + save(EducationExp, file = paste0(Settings$HEISProcessedPath,"Y",year,"EducationExp.rda")) +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/Other Codes/paaad.R b/R/Archive/Other Codes/paaad.R new file mode 100644 index 00000000..f52680e3 --- /dev/null +++ b/R/Archive/Other Codes/paaad.R @@ -0,0 +1,95 @@ +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Admin Area Analysis Data =================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") +library(data.table) + +load(file = "D:/HEIS/DataProcessed/ProvincialPriceData.rda") +PriceData[,Year:=Year-1300] +PriceData[is.na(P01),P01:=CPI] +PriceData[is.na(P02),P02:=CPI] +PriceData[is.na(P03),P03:=CPI] +PriceData[is.na(P04),P04:=CPI] +PriceData[is.na(P05),P05:=CPI] +PriceData[is.na(P06),P06:=CPI] +PriceData[is.na(P07),P07:=CPI] +PriceData[is.na(P08),P08:=CPI] +PriceData[is.na(P09),P09:=CPI] +PriceData[is.na(P10),P10:=CPI] +PriceData[is.na(P11),P11:=CPI] +PriceData[is.na(P12),P12:=CPI] +year <- 77 + +BigD <- data.table() +for(year in 77:96){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"GeoInfo.rda")) + D <- merge(MD,GeoInfo) + D <- merge(D,PriceData,by=c("Year", "Geo2")) + + D[,RX01:=FoodExpenditure/P01*100] + D[,RX02:=Cigar_Exp/P02*100] + D[,RX03:=Cloth_Exp/P03*100] + D[,RX04:=(ServiceExp+Energy_Exp)/P04*100] + D[,RX05:=Furniture_Exp/P05*100] + D[,RX06:=Behdasht_Exp/P06*100] + D[,RX06x:=Medical_Exp/P06*100] + D[,RX07:=Transportation_Exp/P07*100] + D[,RX08:=Communication_Exp/P08*100] + D[,RX09:=Amusement_Exp/P09*100] + D[,RX10:=EducExpenditure/P10*100] + D[,RX11:=Hotel_Exp/P11*100] + D[,RX12:=Other_Exp/P12*100] + D[,RXD:=Durable_Exp/CPI*100] + D[,RXND:=RX01+RX02+RX03+RX04+RX05+RX06+ + RX07+RX08+RX09+RX10+RX11+RX12] + D[,RXT:=RXD+RXND+RX06x] + D[,RXND2:=Total_Exp_Month_nondurable/CPI*100] + D[,RXT2:=Total_Exp_Month/CPI*100] + + D0 <- D[,.(Year,HHID,Region,Quarter,Geo2,Geo4,FGeo2,FGeo4, + HAge,Size,EqSizeOECD,Weight, + RXND,RXD,RXT)] + D0[,YoB := 1300+Year-HAge] + + BigD <- rbind(BigD,D0) +} + +library(readxl) + +rm(D,D0,MD,GeoInfo,PriceData,year) + + +BigD[,Cohort1:=cut(YoB,breaks=seq(from=1277,to=1390,by=1), + labels=paste(seq(from=1278,to=1390,by=1)))] +BigD[,Cohort2:=cut(YoB,breaks=seq(from=1277,to=1389,by=2), + labels=paste(seq(from=1278,to=1388,by=2),"-", + sprintf("%02d",seq(from=1279,to=1389,by=2) %% 100),sep=""))] +BigD[,Cohort5:=cut(YoB,breaks=seq(from=1275,to=1390,by=5), + labels=paste(seq(from=1276,to=1386,by=5),"-", + sprintf("%02d",seq(from=1280,to=1390,by=5) %% 100),sep=""))] +BigD[,Cohort10:=cut(YoB,breaks=seq(from=1275,to=1385,by=10), + labels=paste(seq(from=1276,to=1376,by=10),"-", + sprintf("%02d",seq(from=1285,to=1385,by=10) %% 100),sep=""))] +BigD[,Cohort20:=cut(YoB,breaks=seq(from=1275,to=1395,by=20), + labels=paste(seq(from=1276,to=1376,by=20),"-", + sprintf("%02d",seq(from=1295,to=1395,by=20) %% 100),sep=""))] + + + +BigD[,RXNDpc:=RXND/EqSizeOECD] +BigD[,RXDpc:=RXD/EqSizeOECD] +BigD[,RXTpc:=RXT/EqSizeOECD] + +BigD[,Geo4:=factor(Geo4)] +Geo4D <- data.table(read_excel("../Data/Geo4.xlsx","Changed")) + +BigD <- merge(BigD,Geo4D[,.(Geo4,IGeo4)],by = "Geo4",all.x = TRUE) +BigD[is.na(IGeo4),IGeo4:=Geo4] + +save(BigD,file = "D:/HEIS/DataProcessed/BigD.rda") diff --git a/R/Archive/Other Codes/pppd.R b/R/Archive/Other Codes/pppd.R new file mode 100644 index 00000000..efeb018c --- /dev/null +++ b/R/Archive/Other Codes/pppd.R @@ -0,0 +1,45 @@ +library(readxl) +library(data.table) + +cat("\n\n================ Prepare Provincial Price Data =================================\n") + +O.w <- data.table(read_excel("D:/GoogleDrive/The Database Project/4-Annual/CPI/Urban CPI- State Level.xlsx")) +names(O.w)[1:2] <- c("PCode","ProvFa") +O.m <- melt(O.w,id.vars = c("PCode","ProvFa"),variable.factor=FALSE) +O.m +setnames(O.m,c("variable","value"),c("Year","CPI90")) + +O.m[,Geo2:=sprintf("%02d", PCode)] +O <- O.m[,.(Year,Geo2,CPI90)] + +N.ww <- data.table(read_excel("D:/Downloads/شاخص مصرف کننده.xlsx")) +names(N.ww)[1:3] <- c("ProvFa","Item","Group") +pln <- unique(N.ww$ProvFa) +plo <- unique(O.w$ProvFa) + +intersect(plo,pln) +setdiff(plo,pln) +setdiff(pln,plo) + +N.ww <- merge(N.ww,O.w[,1:2]) +N.m <- melt(N.ww,id.vars = c("ProvFa","PCode","Item","Group"),variable.factor=FALSE) +setnames(N.m,c("variable","value"),c("Year","CPI95")) +N.m[,Geo2:=sprintf("%02d", PCode)] +N.m <- N.m[!is.na(CPI95),.(Year,Geo2,Group,CPI95)] +N <- dcast(N.m, Year + Geo2 ~ Group, value.var = "CPI95") +setnames(N,"CPI","CPI95") + +A <- merge(O,N,by=c("Year","Geo2"),all = TRUE)[order(Year,Geo2)] +X<-A[Year==1390,.(Geo2,B=CPI95)] +A <- merge(A,X,by="Geo2",all.x = TRUE) +A[,CPI90to95:=CPI90/100*B] +A[,CPI:=CPI95] +A[is.na(CPI),CPI:=CPI90to95] + +PriceData <- copy(A) +PriceData[,CPI90:=NULL] +PriceData[,CPI95:=NULL] +PriceData[,CPI90to95:=NULL] +PriceData[,B:=NULL] +PriceData[,Year:=as.integer(Year)] +save(PriceData,file = "D:/HEIS/DataProcessed/ProvincialPriceData.rda") diff --git a/R/Archive/Other Codes/priceWeights.rda b/R/Archive/Other Codes/priceWeights.rda new file mode 100644 index 00000000..429d1382 Binary files /dev/null and b/R/Archive/Other Codes/priceWeights.rda differ diff --git a/R/Archive/Other Codes/prices.rda b/R/Archive/Other Codes/prices.rda new file mode 100644 index 00000000..8e060c5b Binary files /dev/null and b/R/Archive/Other Codes/prices.rda differ diff --git a/R/Archive/Other Codes/remove-all-charts-from-metadata-excel-file.R b/R/Archive/Other Codes/remove-all-charts-from-metadata-excel-file.R new file mode 100644 index 00000000..afad1945 --- /dev/null +++ b/R/Archive/Other Codes/remove-all-charts-from-metadata-excel-file.R @@ -0,0 +1,14 @@ +rm(list=ls()) +library(xlsx) + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + + +wb = loadWorkbook(Settings$MetaDataFilePath) +Sheets <- getSheets(wb) +n <- names(Sheets) +n2 <- n[grepl("Chart.",n)] +for(sname in n2) + removeSheet(wb, sheetName = sname) +saveWorkbook(wb, Settings$MetaDataFilePath) diff --git a/R/Archive/Other Codes/t.R b/R/Archive/Other Codes/t.R new file mode 100644 index 00000000..86b32502 --- /dev/null +++ b/R/Archive/Other Codes/t.R @@ -0,0 +1,18 @@ +# 57-PovertyLines.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Prepare Data =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) + +f \ No newline at end of file diff --git a/R/Archive/Other Codes/test2.R b/R/Archive/Other Codes/test2.R new file mode 100644 index 00000000..2b994899 --- /dev/null +++ b/R/Archive/Other Codes/test2.R @@ -0,0 +1,37 @@ +#test-zahra shahidi + +rm(list=ls()) + +library(yaml) + +library(readxl) +library(stringr) +year<-96 + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"SMD.rda")) +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) +Total<-merge(TD,SMD[,.(HHID,Decile,Percentile)],by="HHID") +Total<-merge(Total,MD[,.(HHID,Bundle_Value,PEngel,Engel,FPLine,PovertyLine,FinalPoor,FinalFoodPoor)]) +Total[,weighted.mean(FinalPoor,Weight*Size),by=.(Region)] +Total[,weighted.mean(FinalPoor,Weight*Size),by=.(ProvinceCode)] + + +Total<-Total[,Diet:=ifelse(FinalFoodPoor==1 & FinalPoor==0,1,0)] +Total[,weighted.mean(Diet,Weight*Size),by=.(Region)] + + + + +TotalD <- Total[Diet==1,.(.N,Engle1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight), + FPLine=mean(FPLine)),by=.(Region,NewArea_Name)] + +Totals<-Total[FinalPoor==1,.(sample2=.N,Engle2=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight)), + by=.(Region,NewArea_Name)] + +Totalt<-merge(TotalD,Totals[,.(Region,NewArea_Name,Engle2,sample2)]) + + + +Totalt<-Totalt[,NewArea_Name:=NULL] +Totalt <- Totalt[,lapply(.SD,sum),by=.(Region)] diff --git a/R/Archive/Poverty Indices2.R b/R/Archive/Poverty Indices2.R new file mode 100644 index 00000000..97559b3f --- /dev/null +++ b/R/Archive/Poverty Indices2.R @@ -0,0 +1,815 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Indices2 =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) +library(ggplot2) + +X1 <- data.table(Year=NA_integer_,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +X2 <- data.table(Year=NA_integer_,Region=NA_character_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + + +X3 <- data.table(Year=NA_integer_,Decile=NA_integer_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +Province<-data.table(Year=NA_integer_,ProvinceCode=NA_integer_,Total_Exp_Month_Per=NA_real_) + +Y1 <- data.table(Year=NA_integer_,H=NA_real_) + +Y2 <- data.table(Year=NA_integer_,H=NA_real_,Region=NA_character_) + +Y3 <- data.table(Year=NA_integer_,H=NA_real_,ProvinceCode=NA_integer_) + +Z1 <- data.table(Year=NA_integer_,A=NA_real_) + +Z2 <- data.table(Year=NA_integer_,A=NA_real_,Region=NA_character_) + +Z3 <- data.table(Year=NA_integer_,A=NA_real_,ProvinceCode=NA_integer_) + +Q1 <- data.table(Year=NA_integer_,MPI=NA_real_) + +Q2 <- data.table(Year=NA_integer_,MPI=NA_real_,Region=NA_character_) + +Q3 <- data.table(Year=NA_integer_,MPI=NA_real_,ProvinceCode=NA_integer_) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy,G125,G1253)],by="HHID") + MD[,Decile:=NULL] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + if (year==98){ + names(Deciles)<-c("HHID","Decile","Percentile") + } + + MD<-merge(MD,Deciles,by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + P1<-P1[Age<=16 & Age>=6,.(HHID,Age,Literate,Student)] + P1<-P1[Literate==TRUE | Literate==FALSE] + P1<-P1[,Lit:=ifelse(Literate==FALSE | Student==FALSE,100,1)] + P<-P1[,lapply(.SD,sum),by="HHID"] + P<-P[,Knowledge:=ifelse(Lit>=100,0,1)] + MD<-merge(MD,P[,.(HHID,Knowledge)],all.x = TRUE) + + + + MD[,Low_Calorie:=ifelse(FoodKCaloriesHH_Per<2100,1,0)] + MD[,Low_Protein:=ifelse(FoodProtein_Per<60,1,0)] + MD[,No_Insurance:=ifelse(G1253==0,1,0)] + MD[,House_High_Share:=ifelse(((G041+G042)/All>0.3 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Urban") | + ((G041+G042)/All>0.2 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Rural"),1,0)] + if (year==90){ + MD[,phone:=ifelse(is.na(phone),"True","False")] + MD[,internet:=ifelse(is.na(internet),"True","False")] + } + + MD[,Tech_low:=ifelse((phone=="False" & cellphone=="False" & + computer=="False") | + (phone=="False" & cellphone=="False" & + internet=="False") | + (phone=="False" & + computer=="False" & internet=="False") | + ( cellphone=="False" & + computer=="False" & internet=="False"),1,0)] + MD[,Yakhchal:=ifelse(refrigerator=="True" | freezer=="True" | + frez_refrig=="True","True","False")] + MD[,Equip_low:=ifelse((Yakhchal=="False" & washer=="False" & + oven=="False") | + (Yakhchal=="False" & washer=="False" & + tvcr=="False") | + (Yakhchal=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & oven=="False") | + ( washer=="False" & Yakhchal=="False") | + ( washer=="False" & tvcr=="False") | + ( tvcr=="False" & oven=="False") | + ( tvcr=="False" & Yakhchal=="False") | + ( Yakhchal=="False" & oven=="False") ,1,0)] + + School<-MD[,.(HHID,Knowledge,No_Insurance,bathroom,pipewater)] + save(School,file=paste0(Settings$HEISProcessedPath,"Y",year,"tahsil.rda")) + + A4<-MD[,.(Total_Exp_Month_Per=weighted.mean(Total_Exp_Month_Per,Weight,na.rm=TRUE)),by=ProvinceCode] + + A1<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE))] + + A2<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Region] + + + A3<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Decile] + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + A3[,Year:=year] + X3 <- rbind(X3,A3) + + A4[,Year:=year] + Province <- rbind(Province,A4) + + MD[,Illiterte:=ifelse(HLiterate==FALSE,1,0)] + MD[,No_knowledge:=ifelse(Knowledge==1 | is.na(Knowledge),0,1)] + MD[,High_Energy_Share:=ifelse((G044+G045)/All >0.07 ,1,0)] + MD[,No_electricity:=ifelse(electricity=="False" ,1,0)] + MD[,No_cookefuel:=ifelse(cookfuel!="pipedgas",1,0)] + MD[,No_pipewater:=ifelse(pipewater=="False",1,0)] + MD[,Small_House:=ifelse((area/Size)<16,1,0)] + MD[,No_Skeleton:=1-ifelse(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone",1,0)] + MD[,No_bathroom:=ifelse(bathroom=="False",1,0)] + MD[,No_ego:=ifelse(ego=="False",1,0)] + MD[,No_car:=ifelse(car=="False",1,0)] + + + W_Edu1<-0.1 + W_Edu2<-0.1 + W_Energy1<-1/15 + W_Energy2<-1/15 + W_Energy3<-1/15 + W_Health1<-1/20 + W_Health2<-1/20 + W_Health3<-1/20 + W_Health4<-1/20 + W_House1<-1/20 + W_House2<-1/20 + W_House3<-1/20 + W_House4<-1/20 + W_Equip1<-0 + W_Equip2<-1/15 + W_Equip3<-1/15 + W_Equip4<-1/15 + + MD[,Poor_Edu:=ifelse(Illiterte==1 | No_knowledge==1,1,0)] + a<-MD[,weighted.mean(Poor_Edu,Weight),by=ProvinceCode] + + MD[,Poor_Energy:=ifelse(High_Energy_Share==1 | No_electricity==1 | + No_cookefuel==1,1,0)] + a<-MD[,weighted.mean(Poor_Energy,Weight),by=ProvinceCode] + + MD[,Poor_Health:=ifelse((Low_Calorie==1 & Low_Protein==1) | + No_Insurance==1 | No_pipewater==1,1,0)] + a<-MD[,weighted.mean(Poor_Health,Weight),by=ProvinceCode] + + MD[,Poor_House:=ifelse(Small_House==1 | House_High_Share==1 | + No_Skeleton==1 | No_bathroom==1,1,0)] + a<-MD[,weighted.mean(Poor_House,Weight),by=ProvinceCode] + + MD[,Poor_Equip:=ifelse(No_car==1 & + (Equip_low==1 | Tech_low==1),1,0)] + a<-MD[,weighted.mean(Poor_Equip,Weight),by=ProvinceCode] + + MD[,Poverty_Score:=W_Edu1*Illiterte+W_Edu2*No_knowledge+ + W_Energy1*High_Energy_Share+W_Energy2*No_electricity+ + W_Energy3*No_cookefuel+ + W_Health1*Low_Calorie+W_Health2*Low_Protein+ + W_Health3*No_Insurance+W_Health4*No_pipewater+ + W_House1*Small_House+W_House2*House_High_Share+ + W_House3*No_Skeleton+W_House4*No_bathroom+ + W_Equip1*No_ego+W_Equip2*No_car+ + W_Equip3*Equip_low+W_Equip4*Tech_low] + + z1<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight))] + + z2<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Region] + + z3<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Decile] + + z4<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=ProvinceCode] + + + MD[,FinalPoor:=ifelse(Poverty_Score>0.2,1,0)] + MD[,Poverty_Score_Revised:=ifelse(Poverty_Score>0.2,Poverty_Score,0)] + B1<-MD[,.(H=weighted.mean(FinalPoor,Weight))] + B2<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=Region] + B3<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=ProvinceCode] + MD[,weighted.mean(FinalPoor,Weight),by=Decile] + + cat(MD[,weighted.mean(FinalPoor,Weight)],"\n") + + B1[,Year:=year] + Y1 <- rbind(Y1,B1) + + B2[,Year:=year] + Y2 <- rbind(Y2,B2) + + B3[,Year:=year] + Y3 <- rbind(Y3,B3) + #write.csv(Y3,file = "Y3.csv") + + C1<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor))] + C2<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=Region] + C3<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=ProvinceCode] + + C1[,Year:=year] + Z1 <- rbind(Z1,C1) + + C2[,Year:=year] + Z2 <- rbind(Z2,C2) + + C3[,Year:=year] + Z3 <- rbind(Z3,C3) + + D1<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor)))] + D2<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=Region] + D3<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=ProvinceCode] + + D1[,Year:=year] + Q1 <- rbind(Q1,D1) + + D2[,Year:=year] + Q2 <- rbind(Q2,D2) + + D3[,Year:=year] + Q3 <- rbind(Q3,D3) + +} + + + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) +D1<-P1[,.(HHID,Age,Literate,Student,Sex)] +D1<-merge(D1,MD[,.(HHID,ProvinceCode,Decile,Weight,Region)],all.x = TRUE) +D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Region"] +x1<-D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="ProvinceCode"] +x2<-D1[Age>7,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Decile"] + +a1<-MD[,weighted.mean(HLiterate==FALSE,Weight),by="ProvinceCode"][order(ProvinceCode)] +a2<-MD[,weighted.mean(Knowledge==0,Weight,na.rm = TRUE),by="ProvinceCode"][order(ProvinceCode)] + + +X1<-X1[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X2<-X2[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X3<-X3[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] + + +png(file="C:/IRHEIS/R/1.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(HLiterate), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 22) +dev.off() + +png(file="C:/IRHEIS/R/2.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/3.png",width=1200, height=600) +ggplot(X3)+ +geom_line(mapping = aes(x=Year,y=HLiterate,col=factor(Decile), +linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + +############################################################################### +png(file="C:/IRHEIS/R/4.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Knowledge), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/5.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/6.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Knowledge,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/7.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Energy_Share), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/8.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/9.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Energy_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/10.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(electricity), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/11.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/12.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=electricity,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/13.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(cookfuel), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/14.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/15.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=cookfuel,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/16.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Calorie), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/17.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/18.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Calorie,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/19.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Protein), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/20.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/21.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Protein,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/22.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(No_Insurance), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/23.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/24.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=No_Insurance,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/25.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(pipewater), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/26.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/27.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=pipewater,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/28.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Area_Per), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/29.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/30.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Area_Per,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/31.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(skeleton), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/32.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/33.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=skeleton,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/34.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(House_High_Share), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/35.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/36.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=House_High_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/37.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/38.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/39.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=bathroom,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/40.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/41.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/42.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=ego,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/43.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(car), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/44.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/45.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=car,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/46.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Tech_low), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/47.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/48.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Tech_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/49.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Equip_low), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/50.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/51.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Equip_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + + + + +write.csv(X1,file="X1.csv") +write.csv(X2,file="X2.csv") +write.csv(X3,file="X3.csv") +write.csv(X4,file="X4.csv") +#write.csv(Province,file="Province.csv") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/Poverty Indices3.R b/R/Archive/Poverty Indices3.R new file mode 100644 index 00000000..402b89b7 --- /dev/null +++ b/R/Archive/Poverty Indices3.R @@ -0,0 +1,857 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Indices2 =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) +library(ggplot2) + +X1 <- data.table(Year=NA_integer_,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +X2 <- data.table(Year=NA_integer_,Region=NA_character_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + + +X3 <- data.table(Year=NA_integer_,Decile=NA_integer_ + ,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_) + +Province<-data.table(Year=NA_integer_,HLiterate=NA_real_,Knowledge=NA_real_ + ,tenure=NA_real_,area=NA_real_,room=NA_real_ + ,car=NA_real_,oven=NA_real_,frez_refrig=NA_real_ + ,electricity=NA_real_,bathroom=NA_real_,ego=NA_real_,pipewater=NA_real_ + ,cookfuel=NA_real_,heatfuel=NA_real_,hotwater=NA_real_ + ,G0451=NA_real_,G0452=NA_real_,G0453=NA_real_,G044=NA_real_,Energy_Share=NA_real_ + ,Subsidy=NA_real_,Food_Share=NA_real_,Low_Calorie=NA_real_,Low_Protein=NA_real_, + FoodKCaloriesHH_Per=NA_real_,No_Insurance=NA_real_,Area_Per=NA_real_ + ,skeleton=NA_real_,House_High_Share=NA_real_,Tech_low=NA_real_,Equip_low=NA_real_,ProvinceCode=NA_integer_) + +Y1 <- data.table(Year=NA_integer_,H=NA_real_) + +Y2 <- data.table(Year=NA_integer_,H=NA_real_,Region=NA_character_) + +Y3 <- data.table(Year=NA_integer_,H=NA_real_,ProvinceCode=NA_integer_) + +Z1 <- data.table(Year=NA_integer_,A=NA_real_) + +Z2 <- data.table(Year=NA_integer_,A=NA_real_,Region=NA_character_) + +Z3 <- data.table(Year=NA_integer_,A=NA_real_,ProvinceCode=NA_integer_) + +Q1 <- data.table(Year=NA_integer_,MPI=NA_real_) + +Q2 <- data.table(Year=NA_integer_,MPI=NA_real_,Region=NA_character_) + +Q3 <- data.table(Year=NA_integer_,MPI=NA_real_,ProvinceCode=NA_integer_) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy,G125,G1253)],by="HHID") + MD[,Decile:=NULL] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + if (year==98){ + names(Deciles)<-c("HHID","Decile","Percentile") + } + + MD<-merge(MD,Deciles,by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + P1<-P1[Age<=16 & Age>=6,.(HHID,Age,Literate,Student)] + P1<-P1[Literate==TRUE | Literate==FALSE] + P1<-P1[,Lit:=ifelse(Literate==FALSE | Student==FALSE,100,1)] + P<-P1[,lapply(.SD,sum),by="HHID"] + P<-P[,Knowledge:=ifelse(Lit>=100,0,1)] + MD<-merge(MD,P[,.(HHID,Knowledge)],all.x = TRUE) + + + + MD[,Low_Calorie:=ifelse(FoodKCaloriesHH_Per<2100,1,0)] + MD[,Low_Protein:=ifelse(FoodProtein_Per<60,1,0)] + MD[,No_Insurance:=ifelse(G1253==0,1,0)] + MD[,House_High_Share:=ifelse(((G041+G042)/All>0.3 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Urban") | + ((G041+G042)/All>0.2 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Rural"),1,0)] + if (year==90){ + MD[,phone:=ifelse(is.na(phone),"True","False")] + MD[,internet:=ifelse(is.na(internet),"True","False")] + } + + MD[,Tech_low:=ifelse((phone=="False" & cellphone=="False" & + computer=="False") | + (phone=="False" & cellphone=="False" & + internet=="False") | + (phone=="False" & + computer=="False" & internet=="False") | + ( cellphone=="False" & + computer=="False" & internet=="False"),1,0)] + MD[,Yakhchal:=ifelse(refrigerator=="True" | freezer=="True" | + frez_refrig=="True","True","False")] + MD[,Equip_low:=ifelse((Yakhchal=="False" & washer=="False" & + oven=="False") | + (Yakhchal=="False" & washer=="False" & + tvcr=="False") | + (Yakhchal=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & oven=="False") | + ( washer=="False" & Yakhchal=="False") | + ( washer=="False" & tvcr=="False") | + ( tvcr=="False" & oven=="False") | + ( tvcr=="False" & Yakhchal=="False") | + ( Yakhchal=="False" & oven=="False") ,1,0)] + + School<-MD[,.(HHID,Knowledge,No_Insurance,bathroom,pipewater)] + save(School,file=paste0(Settings$HEISProcessedPath,"Y",year,"tahsil.rda")) + + A4<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas" & cookfuel!="gas" & cookfuel!="electricity",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=ProvinceCode] + + A1<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas" & cookfuel!="gas" & cookfuel!="electricity",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE))] + + A2<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas" & cookfuel!="gas" & cookfuel!="electricity",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Region] + + + A3<-MD[,.(HLiterate=weighted.mean(HLiterate==FALSE,Weight,na.rm=TRUE), + Knowledge=weighted.mean(Knowledge==0,Weight,na.rm=TRUE), + tenure=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight,na.rm=TRUE), + area=weighted.mean(area/Size,Weight,na.rm=TRUE), + room=weighted.mean(room/Size,Weight,na.rm=TRUE), + car=weighted.mean(car=='False',Weight,na.rm=TRUE), + frez_refrig=weighted.mean(frez_refrig=="True" | refrigerator=="True",Weight,na.rm=TRUE), + oven=weighted.mean(oven=="False",Weight,na.rm=TRUE), + bathroom=weighted.mean(bathroom=="False",Weight,na.rm=TRUE), + ego=weighted.mean(ego=="False",Weight,na.rm=TRUE), + electricity=weighted.mean(electricity=="False",Weight,na.rm=TRUE), + pipewater=weighted.mean(pipewater=="False",Weight,na.rm=TRUE), + cookfuel=weighted.mean(cookfuel!="pipedgas" & cookfuel!="gas" & cookfuel!="electricity",Weight,na.rm=TRUE), + heatfuel=weighted.mean(heatfuel!="pipedgas",Weight,na.rm=TRUE), + hotwater=weighted.mean(hotwater!="pipedgas",Weight,na.rm=TRUE), + G0451=weighted.mean(G0451/All,Weight,na.rm=TRUE), + G0452=weighted.mean(G0452/All,Weight,na.rm=TRUE), + G0453=weighted.mean((G0453+G0454)/All,Weight,na.rm=TRUE), + G044=weighted.mean(G044/All,Weight,na.rm=TRUE), + Energy_Share=weighted.mean((G044+G045)/All,Weight,na.rm=TRUE), + Subsidy=weighted.mean((Subsidy/12)/All,Weight,na.rm=TRUE), + Food_Share=weighted.mean(G01/All,Weight,na.rm=TRUE), + Low_Calorie=weighted.mean(Low_Calorie,Weight,na.rm=TRUE), + Low_Protein=weighted.mean(Low_Protein,Weight,na.rm=TRUE), + No_Insurance=weighted.mean(No_Insurance,Weight,na.rm=TRUE), + Area_Per=weighted.mean((area/Size)<16,Weight,na.rm=TRUE), + House_High_Share=weighted.mean(House_High_Share,Weight,na.rm=TRUE), + Tech_low=weighted.mean(Tech_low,Weight,na.rm=TRUE), + Equip_low=weighted.mean(Equip_low,Weight,na.rm=TRUE), + skeleton=1-weighted.mean(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone" ,Weight,na.rm=TRUE), + FoodKCaloriesHH_Per=weighted.mean(FoodKCaloriesHH_Per,Weight,na.rm=TRUE)),by=Decile] + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + A3[,Year:=year] + X3 <- rbind(X3,A3) + + A4[,Year:=year] + Province <- rbind(Province,A4) + + MD[,Illiterte:=ifelse(HLiterate==FALSE,1,0)] + MD[,No_knowledge:=ifelse(Knowledge==1 | is.na(Knowledge),0,1)] + MD[,High_Energy_Share:=ifelse((G044+G045)/All >0.07 ,1,0)] + MD[,No_electricity:=ifelse(electricity=="False" ,1,0)] + MD[,No_cookefuel:=ifelse(cookfuel!="pipedgas" & cookfuel!="gas" & cookfuel!="electricity",1,0)] + MD[,No_pipewater:=ifelse(pipewater=="False",1,0)] + MD[,Small_House:=ifelse((area/Size)<16,1,0)] + MD[,No_Skeleton:=1-ifelse(skeleton=="metal" | skeleton=="concrete" | + constmat=="BrickSteel_StoneSteel" | + constmat=="Brickwood_Stonewood" | + constmat=="CementBlocks" | + constmat=="AllBrick_Stone",1,0)] + MD[,No_bathroom:=ifelse(bathroom=="False",1,0)] + MD[,No_ego:=ifelse(ego=="False",1,0)] + MD[,No_car:=ifelse(car=="False",1,0)] + + + W_Edu1<-0.1 + W_Edu2<-0.1 + W_Energy1<-1/15 + W_Energy2<-1/15 + W_Energy3<-1/15 + W_Health1<-1/20 + W_Health2<-1/20 + W_Health3<-1/20 + W_Health4<-1/20 + W_House1<-1/20 + W_House2<-1/20 + W_House3<-1/20 + W_House4<-1/20 + W_Equip1<-0 + W_Equip2<-1/15 + W_Equip3<-1/15 + W_Equip4<-1/15 + + MD[,Poor_Edu:=ifelse(Illiterte==1 | No_knowledge==1,1,0)] + a<-MD[,weighted.mean(Poor_Edu,Weight),by=ProvinceCode] + + MD[,Poor_Energy:=ifelse(High_Energy_Share==1 | No_electricity==1 | + No_cookefuel==1,1,0)] + a<-MD[,weighted.mean(Poor_Energy,Weight),by=ProvinceCode] + + MD[,Poor_Health:=ifelse((Low_Calorie==1 & Low_Protein==1) | + No_Insurance==1 | No_pipewater==1,1,0)] + a<-MD[,weighted.mean(Poor_Health,Weight),by=ProvinceCode] + + MD[,Poor_House:=ifelse(Small_House==1 | House_High_Share==1 | + No_Skeleton==1 | No_bathroom==1,1,0)] + a<-MD[,weighted.mean(Poor_House,Weight),by=ProvinceCode] + + MD[,Poor_Equip:=ifelse(No_car==1 & + (Equip_low==1 | Tech_low==1),1,0)] + a<-MD[,weighted.mean(Poor_Equip,Weight),by=ProvinceCode] + + MD[,Poverty_Score:=W_Edu1*Illiterte+W_Edu2*No_knowledge+ + W_Energy1*High_Energy_Share+W_Energy2*No_electricity+ + W_Energy3*No_cookefuel+ + W_Health1*Low_Calorie+W_Health2*Low_Protein+ + W_Health3*No_Insurance+W_Health4*No_pipewater+ + W_House1*Small_House+W_House2*House_High_Share+ + W_House3*No_Skeleton+W_House4*No_bathroom+ + W_Equip1*No_ego+W_Equip2*No_car+ + W_Equip3*Equip_low+W_Equip4*Tech_low] + + z1<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight))] + + z2<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Region] + + z3<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=Decile] + + z4<-MD[,.(Illiterte=weighted.mean(Illiterte,Weight) + ,No_knowledge=weighted.mean(No_knowledge,Weight) + ,High_Energy_Share=weighted.mean(High_Energy_Share,Weight) + ,No_electricity=weighted.mean(No_electricity,Weight) + ,No_cookefuel=weighted.mean(No_cookefuel,Weight) + ,Low_Calorie=weighted.mean(Low_Calorie,Weight) + ,Low_Protein=weighted.mean(Low_Protein,Weight) + ,No_Insurance=weighted.mean(No_Insurance,Weight) + ,No_pipewater=weighted.mean(No_pipewater,Weight) + ,Small_House=weighted.mean(Small_House,Weight) + ,House_High_Share=weighted.mean(House_High_Share,Weight) + ,No_Skeleton=weighted.mean(No_Skeleton,Weight) + ,No_bathroom=weighted.mean(No_bathroom,Weight) + ,No_ego=weighted.mean(No_ego,Weight) + ,No_car=weighted.mean(No_car,Weight) + ,Equip_low=weighted.mean(Equip_low,Weight) + ,Tech_low=weighted.mean(Tech_low,Weight)),by=ProvinceCode] + + + MD[,FinalPoor:=ifelse(Poverty_Score>0.2,1,0)] + MD[,Poverty_Score_Revised:=ifelse(Poverty_Score>0.2,Poverty_Score,0)] + B1<-MD[,.(H=weighted.mean(FinalPoor,Weight))] + B2<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=Region] + B3<-MD[,.(H=weighted.mean(FinalPoor,Weight)),by=ProvinceCode] + MD[,weighted.mean(FinalPoor,Weight),by=Decile] + + cat(MD[,weighted.mean(FinalPoor,Weight)],"\n") + + B1[,Year:=year] + Y1 <- rbind(Y1,B1) + + B2[,Year:=year] + Y2 <- rbind(Y2,B2) + + B3[,Year:=year] + Y3 <- rbind(Y3,B3) + #write.csv(Y3,file = "Y3.csv") + + C1<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor))] + C2<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=Region] + C3<-MD[,.(A=sum(Poverty_Score_Revised)/sum(FinalPoor)),by=ProvinceCode] + + C1[,Year:=year] + Z1 <- rbind(Z1,C1) + + C2[,Year:=year] + Z2 <- rbind(Z2,C2) + + C3[,Year:=year] + Z3 <- rbind(Z3,C3) + + D1<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor)))] + D2<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=Region] + D3<-MD[,.(MPI=weighted.mean(FinalPoor,Weight)*(sum(Poverty_Score_Revised)/sum(FinalPoor))),by=ProvinceCode] + + D1[,Year:=year] + Q1 <- rbind(Q1,D1) + + D2[,Year:=year] + Q2 <- rbind(Q2,D2) + + D3[,Year:=year] + Q3 <- rbind(Q3,D3) + +} + + + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) +D1<-P1[,.(HHID,Age,Literate,Student,Sex)] +D1<-merge(D1,MD[,.(HHID,ProvinceCode,Decile,Weight,Region)],all.x = TRUE) +D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Region"] +x1<-D1[Age>6,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="ProvinceCode"] +x2<-D1[Age>7,weighted.mean(Literate=="FALSE",Weight,na.rm = TRUE),by="Decile"] + +a1<-MD[,weighted.mean(HLiterate==FALSE,Weight),by="ProvinceCode"][order(ProvinceCode)] +a2<-MD[,weighted.mean(Knowledge==0,Weight,na.rm = TRUE),by="ProvinceCode"][order(ProvinceCode)] + + +X1<-X1[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X2<-X2[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X3<-X3[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] + + +png(file="C:/IRHEIS/R/1.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(HLiterate), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 22) +dev.off() + +png(file="C:/IRHEIS/R/2.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=HLiterate, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/3.png",width=1200, height=600) +ggplot(X3)+ +geom_line(mapping = aes(x=Year,y=HLiterate,col=factor(Decile), +linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + +############################################################################### +png(file="C:/IRHEIS/R/4.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Knowledge), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/5.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Knowledge, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/6.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Knowledge,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/7.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Energy_Share), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/8.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Energy_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/9.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Energy_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/10.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(electricity), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/11.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=electricity, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/12.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=electricity,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/13.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(cookfuel), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/14.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=cookfuel, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/15.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=cookfuel,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/16.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Calorie), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/17.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Calorie, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/18.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Calorie,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/19.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Low_Protein), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/20.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Low_Protein, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/21.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Low_Protein,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/22.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(No_Insurance), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/23.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=No_Insurance, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/24.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=No_Insurance,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/25.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(pipewater), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/26.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=pipewater, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/27.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=pipewater,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/28.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Area_Per), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/29.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Area_Per, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/30.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Area_Per,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/31.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(skeleton), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/32.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=skeleton, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/33.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=skeleton,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/34.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(House_High_Share), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/35.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=House_High_Share, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/36.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=House_High_Share,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +############################################################################### +############################################################################### +png(file="C:/IRHEIS/R/37.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/38.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=bathroom, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/39.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=bathroom,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/40.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(bathroom), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/41.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=ego, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/42.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=ego,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/43.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(car), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/44.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=car, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/45.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=car,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/46.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Tech_low), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/47.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Tech_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/48.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Tech_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() +############################################################################### +png(file="C:/IRHEIS/R/49.png",width=1200, height=600) +ggplot(X1, aes(fill=factor(Equip_low), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +dev.off() + +png(file="C:/IRHEIS/R/50.png",width=1200, height=600) +ggplot(X2, aes(fill=factor(Region), y=Equip_low, x=factor(Year))) + + geom_bar(position="dodge", stat="identity") + theme_bw() + + theme(axis.text.x = element_text(angle=45, vjust=1, hjust=1)) + theme_grey(base_size = 25) +#+ geom_text(aes(label=HLiterate), position=position_dodge(width=0.9), vjust=-0.25) +dev.off() + +png(file="C:/IRHEIS/R/51.png",width=1200, height=600) +ggplot(X3)+ + geom_line(mapping = aes(x=Year,y=Equip_low,col=factor(Decile), + linetype=factor(Decile)))+ theme_grey(base_size = 25) +dev.off() + + + + +#write.csv(X1,file="X1.csv") +#write.csv(X2,file="X2.csv") +#write.csv(X3,file="X3.csv") +#write.csv(X4,file="X4.csv") +write.csv(Province,file="Province.csv") + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/Reweighting.R b/R/Archive/Reweighting.R new file mode 100644 index 00000000..e3bbf893 --- /dev/null +++ b/R/Archive/Reweighting.R @@ -0,0 +1,83 @@ +#Reweighting +Pop_U90<-54524.533 +Pop_R90<-20625.136 +Pop_U91<-55419 +Pop_R91<-20656 +Pop_U92<-56328 +Pop_R92<-20687 +Pop_U93<-57253 +Pop_R93<-20718 +Pop_U94<-58192 +Pop_R94<-20748 +Pop_U95<-59147 +Pop_R95<-20779 +Pop_U96<-60281 +Pop_R96<-20789 +Pop_U97<-61329 +Pop_R97<-20754 +Pop_U98<-62367 +Pop_R98<-20708 + + + + +if (year==90){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U90/Weight_U,Weight*Pop_R90/Weight_R)] +} + +if (year==91){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U91/Weight_U,Weight*Pop_R91/Weight_R)] +} + +if (year==92){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U92/Weight_U,Weight*Pop_R92/Weight_R)] +} + +if (year==93){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U93/Weight_U,Weight*Pop_R93/Weight_R)] +} + +if (year==94){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U94/Weight_U,Weight*Pop_R94/Weight_R)] +} + +if (year==95){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U95/Weight_U,Weight*Pop_R95/Weight_R)] +} + +if (year==96){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U96/Weight_U,Weight*Pop_R96/Weight_R)] +} + +if (year==97){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U97/Weight_U,Weight*Pop_R97/Weight_R)] +} + +if (year==98){ + Weight_U<-MD[Region=="Urban",sum(Weight*Size)/1000] + Weight_R<-MD[Region=="Rural",sum(Weight*Size)/1000] + MD[,Weight:=ifelse(Region=="Urban",Weight*Pop_U98/Weight_U,Weight*Pop_R98/Weight_R)] +} + +Pop<-MD[,sum(Weight*Size),by=c("CountyName")] +Geoo <- as.data.table(read_excel("C:/HEIS/DataResults/Geo.xlsx", + sheet = "Sheet1")) + +Pop<-merge(Pop,Geoo[,.(CountyName,Province,County)],by=c("CountyName")) +write_xlsx(Pop,path=paste0(Settings$HEISResultsPath,"/Pop.xlsx"),col_names=T) diff --git a/R/Archive/Test-Tehran-Students-Count.R b/R/Archive/Test-Tehran-Students-Count.R new file mode 100644 index 00000000..bf75bd7f --- /dev/null +++ b/R/Archive/Test-Tehran-Students-Count.R @@ -0,0 +1,27 @@ +rm(list=ls()) + +library(data.table) + +load("D:/HEIS/DataProcessed/Y96HHBase.rda") +load("D:/HEIS/DataProcessed/Y96HHI.rda") +load("D:/GitHub/IRHEIS/Data/SamplingWeights/HHWeights96.rda") + +DT <- merge(HHBase[ProvinceCode==23],HHI,by="HHID") +DT <- merge(DT,HHWeights) + +names(DT) + +DT[,sum(NElementary*Weight)] +DT[,sum(NMiddle*Weight)] +DT[,sum((NHigh+NPre)*Weight)] + +DT[,sum(Weight)] +DT[,sum(Size*Weight)] + + +DT[CountyCode==2301 & Region=="Urban", sum(NElementary*Weight)] +DT[CountyCode==2301 & Region=="Urban", sum(NMiddle*Weight)] +DT[CountyCode==2301 & Region=="Urban", sum((NHigh+NPre)*Weight)] + +DT[CountyCode==2301 & Region=="Urban", sum(Weight)] +DT[CountyCode==2301 & Region=="Urban", sum(Size*Weight)] \ No newline at end of file diff --git a/R/Archive/Yarane report-Refah.R b/R/Archive/Yarane report-Refah.R new file mode 100644 index 00000000..5e1167ef --- /dev/null +++ b/R/Archive/Yarane report-Refah.R @@ -0,0 +1,129 @@ +#Yarane report-Refah +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Poverty Line =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +library(tidyverse) + +year<-98 + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"InitialPoor.rda")) +MD[,Decile:=NULL] +MD[,Percentile:=NULL] +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"AidWage.rda")) + + +MD<-merge(MD,Deciles,all.x = TRUE) +MD[,Decile:=Decile1] +MD<-merge(MD,AidWageData,all.x = TRUE) +for (col in c("aid")) MD[is.na(get(col)), (col) := 0] +MD[,PositiveAid:=ifelse(aid>0,1,0)] +MD[,weighted.mean(PositiveAid,Weight*Size),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(PositiveAid,Weight*Size),by=.(Decile)][order(Decile)] + + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Subsidy.rda")) +MD<-merge(MD,SubsidyWageData,all.x = TRUE,by="HHID") +for (col in c("Subsidy")) MD[is.na(get(col)), (col) := 0] +MD[,PositiveSubsidy:=ifelse(Subsidy>0,1,0)] +MD[,weighted.mean(PositiveSubsidy,Weight*Size),by=.(Region,Decile)][order(Region,Decile)] +MD[,weighted.mean(PositiveSubsidy,Weight*Size),by=.(Decile)][order(Decile)] + + +#load(file = paste0(Settings$HEISProcessedPath,"Y",year,"UTSubsidyW.rda")) +#load(file = paste0(Settings$HEISProcessedPath,"Y",year,"RTSubsidyW.rda")) + +#TSubsidy<-rbind(UTSubsidyW,RTSubsidyW) +#TSubsidy<-TSubsidy[,HHID:=Address] +#MD<-merge(MD,TSubsidy[,.(HHID,check1)],all.x = TRUE,by="HHID") +#MD[,Subsidy3:=ifelse(check1>800000,1,0)] +#y<-MD[Subsidy3==1,.(HHID,Decile,Region)] +#MD[,weighted.mean(Subsidy3,Weight*Size,na.rm = TRUE),by=.(Region,Decile)][order(Region,Decile)] +#MD[,weighted.mean(Subsidy3,Weight*Size,na.rm = TRUE),by=.(Decile)][order(Decile)] + +MD[,TotalAid:=(Subsidy+aid)/12] +MD_Ok<- MD[TotalAid>0] +MD_Ok[,ratio:=TotalAid/Total_Exp_Month] +MD_Ok[,.(.N,weighted.mean(ratio,Weight*Size,na.rm = TRUE)),by=.(Region,Decile)][order(Region,Decile)] +MD_Ok[,.(weighted.mean(ratio,Weight*Size,na.rm = TRUE)),by=.(Decile)][order(Decile)] +MD_Ok[,.(.N,weighted.mean(Total_Exp_Month,Weight*Size,na.rm = TRUE)),by=.(Region,Decile)][order(Region,Decile)] +MD_Ok[,.(weighted.mean(Total_Exp_Month,Weight*Size,na.rm = TRUE)),by=.(Decile)][order(Decile)] +MD_Ok[,.(.N,weighted.mean(Total_Exp_Month/EqSizeOECD,Weight*Size,na.rm = TRUE)),by=.(Region,Decile)][order(Region,Decile)] +MD_Ok[,.(weighted.mean(Total_Exp_Month/EqSizeOECD,Weight*Size,na.rm = TRUE)),by=.(Decile)][order(Decile)] + +#load(file = paste0(Settings$HEISProcessedPath,"Y",year,"BreadExp.rda")) +#load(file = paste0(Settings$HEISProcessedPath,"Y",year,"BreadCon.rda")) +#MD<-merge(MD,BreadData,by="HHID") +#MD<-merge(MD,BreadConsumption,by="HHID") + +MD[is.na(MD)] <- 0 + +#MD[,weighted.mean(G01114+G01115,Weight),by=.(Region,Decile)][order(Region,Decile)] +#MD[,weighted.mean(G01114+G01115,Weight),by=.(Decile)][order(Decile)] + +#MD[,weighted.mean(Size,Weight),by=.(Decile)][order(Decile)] +#MD[,weighted.mean(Size,Weight),by=.(Region,Decile)][order(Region,Decile)] + +#MD[,weighted.mean(BreadGrams,Weight),by=.(Region,Decile)][order(Region,Decile)] +#MD[,weighted.mean(BreadGrams,Weight),by=.(Decile)][order(Decile)] + +#load(file = paste0(Settings$HEISProcessedPath,"Y",year,"DrugsExp.rda")) +#MD<-merge(MD,DrugsExp,all.x = TRUE) +#MD[is.na(MD)] <- 0 + +#MD[,weighted.mean(DrugsExp,Weight),by=.(Region,Decile)][order(Region,Decile)] +#MD[,weighted.mean(DrugsExp,Weight),by=.(Decile)][order(Decile)] + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodExp.rda")) +TotalFoodExp<-merge(TotalFoodExp,MD[,.(HHID,Decile)]) + +TotalFoodExp[,weighted.mean(`011211`+`011212`+`011213`+ + `011214`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011117`+`011118`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011231`+`011232`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011411`+`011412`+`011413`+`011414`+ + `011421`+`011422`+`011423`+`011424`+ + `011425`+`011426`+`011427`+`011428`+ + `011429`+`011431`+`011432`+`011433`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011441`+`011442`+`011443`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011531`+`011532`+`011533`,Weight),by=.(Decile)][order(Decile)] + +TotalFoodExp[,weighted.mean(`011812`,Weight),by=.(Decile)][order(Decile)] + + +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"TotalFoodCon.rda")) +MD<-merge(MD,TotalFoodCon,by="HHID") +MD<-MD[as.numeric(Decile)>=1 & as.numeric(Decile)<=10] +A<-MD[,weighted.mean((Rice_Khareji1Gram+Rice_Khareji2Gram)/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean(Oil_NabatiGram/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean(PoultryMeat_MGram/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean(CowMeatGram/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean(SheepMeatGram/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean((Egg_MashinGram+Egg_NonMashinGram)/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean((BreadGrams)/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean((GrainGrams)/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean((MilkGrams+MilkproductsGrams)/EqSizeCalory,Weight),by=Decile][order(Decile)] +A<-MD[,weighted.mean((TreeFruitsGrams+JaliziFruitsGrams)/EqSizeCalory,Weight),by=Decile][order(Decile)] + +MD[as.numeric(Decile)<4,weighted.mean(Total_Exp_Month_Per,Weight)] +MD[as.numeric(Decile)>7,weighted.mean(Total_Exp_Month_Per,Weight)] + + diff --git a/R/Archive/bime gheyredarmani.R b/R/Archive/bime gheyredarmani.R new file mode 100644 index 00000000..42486f6d --- /dev/null +++ b/R/Archive/bime gheyredarmani.R @@ -0,0 +1,82 @@ +# Step 7,8,9 and other +# +# Copyright © 2018: Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================bime =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) + +X1 <- data.table(Year = numeric(0),share = integer(0),Decile = integer(0)) +X2 <- data.table(Year = numeric(0),share = integer(0),Decile = integer(0), + Region =NA_character_ ) +X3 <- data.table(Year = numeric(0),share = integer(0),Decile = integer(0)) +X4 <- data.table(Year = numeric(0),share = integer(0),Decile = integer(0), + Region =NA_character_ ) + +year<-98 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"job.rda")) +load(file = paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + +MD[,Decile:=NULL] +if (year==98){ + Deciles[,Decile:=Decile1] +} +MD<-merge(MD,Deciles[,.(HHID,Decile)],by=c("HHID")) + +MD<-merge(MD,job[,.(HHID,PubWageNetIncomeY,PrvWageNetIncomeY)],by=c("HHID")) + + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"TotalDurable.rda")) + + +RT<-merge(MD,TotalDurable[,.(HHID,`125113`, `125114`,`125115`,`125116`, + `125117`,`125118`,`125119`,`125121`)]) +A1<-RT[,.(share=weighted.mean(`125113`>0 | `125114`>0 | `125117`>0,Weight)),by="Decile"] +A2<-RT[,.(share=weighted.mean(`125113`>0 | `125114`>0 | `125117`>0,Weight)),by=c("Region","Decile")] + +A1[,Year:=year] +X1 <- rbind(A1,X1) + +A2[,Year:=year] +X2 <- rbind(A2,X2) + +RT[,PubWageNetIncomeY:=NULL] +RT[,PrvWageNetIncomeY:=NULL] +RT[,BussNetIncomeY:=NULL] +RT[,AgriNetIncomeY:=NULL] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year, "Activared.rda")) +RT<-merge(RT,Data[,.(HHID,PubWageNetIncomeY,PrvWageNetIncomeY,BussNetIncomeY,AgriNetIncomeY)]) + +RT[,Active:=ifelse(PubWageNetIncomeY>0 | PrvWageNetIncomeY>0 | + BussNetIncomeY>0 | AgriNetIncomeY>0,1,0)] + +A3<-RT[,.(share=weighted.mean(Active,Weight)),by="Decile"] +A4<-RT[,.(share=weighted.mean(Active,Weight)),by=c("Region","Decile")] +A3[,Year:=year] +X3 <- rbind(A3,X3) + +A4[,Year:=year] +X4 <- rbind(A4,X4) +} + + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") \ No newline at end of file diff --git a/R/Archive/checkProt_cal.R b/R/Archive/checkProt_cal.R new file mode 100644 index 00000000..35c03b13 --- /dev/null +++ b/R/Archive/checkProt_cal.R @@ -0,0 +1,53 @@ +library(ggplot2) +SP=data.table() +for(year in (90:Settings$endyear)){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + +SD50 <- MD[TOriginalFoodExpenditure_Per>0.7*FPLine + &TOriginalFoodExpenditure_Per<1.3*FPLine + &FoodProtein_Per>50&Area>15*Size, + .(p50=.N, En50=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight)),by=c("NewArea_Name","Region")] + + + +SD500 <- MD[TOriginalFoodExpenditure_Per>0.7*FPLine + &TOriginalFoodExpenditure_Per<1.3*FPLine, + .(.N,mean_p=weighted.mean(FoodProtein_Per, Weight*Size), + median_p=weighted.median(FoodProtein_Per, Weight*Size), + max=max(FoodProtein_Per),min=min(FoodProtein_Per), + En=weighted.mean(TOriginalFoodExpenditure/Total_Exp_Month,Weight)),by=c("NewArea_Name","Region")] +SD500 <- merge(SD500,SD50) +SD500 <- SD500[,Year:=year] +SP <- rbind(SP,SD500) + +} + +SP <- SP[,ratio:=p50/N] +SP <- SP[,Net:=1/En-1/En50] +ggplot(SP[NewArea_Name=="Sh_Bandarabas"])+ + geom_line(mapping = aes(x=Year,y=mean_p,col=factor(NewArea_Name))) + +a<-SP$Net +hist(a) + + +SD <- merge(SD300, SD500) +SD <- merge(SD, SD700) +SD <- merge(SD, SD900) + +Sp70 <- MD[FoodProtein_Per<70,.(p70=.N),by=c("NewArea_Name","Region")] +Sp50 <- MD[FoodProtein_Per<50,.(p50=.N),by=c("NewArea_Name","Region")] +Sp90 <- MD[FoodProtein_Per<90,.(p90=.N),by=c("NewArea_Name","Region")] +SP<-merge(Sp50,Sp70) +SP<-merge(SP,Sp90) +SDP<-merge(SP,SD) + + + +p_p70 <- MD[TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine& FoodProtein_Per<70,.(p_p70=.N),by=c("NewArea_Name","Region")] +p_p50 <- MD[TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine& FoodProtein_Per<50,.(p_p50=.N),by=c("NewArea_Name","Region")] +p_p90 <- MD[TOriginalFoodExpenditure_Per>0.8*FPLine & TOriginalFoodExpenditure_Per<1.2*FPLine& FoodProtein_Per<90,.(p_p90=.N),by=c("NewArea_Name","Region")] + +SPP<-merge(p_p50,p_p70) +SPP<-merge(SPP,p_p90) +SDP<-merge(SPP,SDP) \ No newline at end of file diff --git a/R/Archive/indices.R b/R/Archive/indices.R new file mode 100644 index 00000000..019fa52a --- /dev/null +++ b/R/Archive/indices.R @@ -0,0 +1,170 @@ +# 111-HHBase.R +# Builds the base data.table for households + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Indices =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(foreign) +library(data.table) +library(stringr) +library(ggplot2) + +X1 <- data.table(Year=NA_integer_,Exp_Per=NA_real_,Exp=NA_real_,Share=NA_real_) + +X2 <- data.table(Year=NA_integer_,Exp_Per=NA_real_,Exp=NA_real_,Share=NA_real_, + No_Insurance=NA_integer_) + +X3 <- data.table(Year=NA_integer_,Exp_Per=NA_real_,Exp=NA_real_,Share=NA_real_, + Malek=NA_integer_) + +X4 <- data.table(Year=NA_integer_,Exp_Per=NA_real_,Exp=NA_real_,Share=NA_real_, + Poor_Area=NA_integer_) + + + + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FINALPOORS.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"school.rda")) + MD<-merge(MD,Total[,.(HHID,G01,G02,G03,G04,G05,G06,G07,G08,G09,G101, + G102,G103,G104,G105,G11,G12,G13,G041,G042,G044,G045, + G0451,G0452,G0453,G0454,Subsidy,G125,G1253)],by="HHID") + MD[,Decile:=NULL] + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles.rda")) + MD<-merge(MD,Deciles,by="HHID") + MD<-merge(MD,MD10,by="HHID") + + MD[,All:=G01+G02+G03+G04+G05+G06+G07+G08+G09+G101+ + G102+G103+G104+G105+G11+G12+G13] + + MD[,Malek:=ifelse(tenure=="OwnLandandBuilding" | tenure=="Apartment" ,1,0)] + + for (col in c("ego","bathroom","electricity")) + MD[is.na(get(col)), (col) := "True"] + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"P1.rda")) + P1<-P1[Age<=16 & Age>=6,.(HHID,Age,Literate,Student)] + P1<-P1[Literate==TRUE | Literate==FALSE] + P1<-P1[,Lit:=ifelse(Literate==FALSE | Student==FALSE,100,1)] + P<-P1[,lapply(.SD,sum),by="HHID"] + P<-P[,Knowledge:=ifelse(Lit>=100,0,1)] + MD<-merge(MD,P[,.(HHID,Knowledge)],all.x = TRUE) + + MD[,Low_Calorie:=ifelse(FoodKCaloriesHH_Per<2100,1,0)] + MD[,Low_Protein:=ifelse(FoodProtein_Per<60,1,0)] + MD[,No_Insurance:=ifelse(G1253==0,1,0)] + MD[,House_High_Share:=ifelse(((G041+G042)/All>0.3 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Urban") | + ((G041+G042)/All>0.2 & (tenure=="Rented" | + tenure=="Mortgage") & Region=="Rural"),1,0)] + MD[,Tech_low:=ifelse((phone=="False" & cellphone=="False" & + computer=="False") | + (phone=="False" & cellphone=="False" & + internet=="False") | + (phone=="False" & + computer=="False" & internet=="False") | + ( cellphone=="False" & + computer=="False" & internet=="False"),1,0)] + MD[,Yakhchal:=ifelse(refrigerator=="True" | freezer=="True" | + frez_refrig=="True","True","False")] + MD[,Equip_low:=ifelse((Yakhchal=="False" & washer=="False" & + oven=="False") | + (Yakhchal=="False" & washer=="False" & + tvcr=="False") | + (Yakhchal=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & + oven=="False" & tvcr=="False") | + ( washer=="False" & oven=="False") | + ( washer=="False" & Yakhchal=="False") | + ( washer=="False" & tvcr=="False") | + ( tvcr=="False" & oven=="False") | + ( tvcr=="False" & Yakhchal=="False") | + ( Yakhchal=="False" & oven=="False") ,1,0)] + +MD[,Poor_Area:=ifelse(ProvinceCode==11 | ProvinceCode==6 | ProvinceCode==29 | + ProvinceCode==16,1,0)] + +MD[,Total_Exp_Month:=ifelse(Malek==1,Total_Exp_Month-G041-G042,Total_Exp_Month)] +MD[,Total_Exp_Month_Per:=ifelse(Malek==1,Total_Exp_Month_Per-G041/EqSizeOECD-G042/EqSizeOECD,Total_Exp_Month_Per)] + +MD[,Total_Exp_Month:=ifelse(No_Insurance==1,Total_Exp_Month,Total_Exp_Month-G1253)] +MD[,Total_Exp_Month_Per:=ifelse(No_Insurance==1,Total_Exp_Month_Per,Total_Exp_Month_Per-G1253/EqSizeOECD)] + + A1<-MD[,.(Exp=weighted.mean(Total_Exp_Month,Weight), + Exp_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Share=weighted.mean(G01/All,Weight))] + + A2<-MD[,.(Exp=weighted.mean(Total_Exp_Month,Weight), + Exp_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Share=weighted.mean(G01/All,Weight)),by=No_Insurance] + + A3<-MD[,.(Exp=weighted.mean(Total_Exp_Month,Weight), + Exp_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Share=weighted.mean(G01/All,Weight)),by=Malek] + + A4<-MD[,.(Exp=weighted.mean(Total_Exp_Month,Weight), + Exp_Per=weighted.mean(Total_Exp_Month_Per,Weight), + Share=weighted.mean(G01/All,Weight)),by=Poor_Area] + + + + A1[,Year:=year] + X1 <- rbind(X1,A1) + + A2[,Year:=year] + X2 <- rbind(X2,A2) + + A3[,Year:=year] + X3 <- rbind(X3,A3) + + A4[,Year:=year] + X4 <- rbind(X4,A4) + + + x<- MD[NStudents>0,weighted.mean(internet=="True",Weight),by="CountyCode"] + x[,Deprivation:=ifelse(V1==0,1,0)] + MD<-merge(MD,x,by="CountyCode") + + MD[,weighted.mean(internet=="True",Weight)] + MD[Deprivation==0,weighted.mean(internet=="True",Weight)] + MD[NStudents>0,weighted.mean(internet=="True",Weight)] + MD[NStudents>0 & Deprivation==0,weighted.mean(internet=="True",Weight)] + + MD[,weighted.mean(internet=="True",Weight),by="Region"] + MD[Deprivation==0,weighted.mean(internet=="True",Weight),by="Region"] + MD[NStudents>0,weighted.mean(internet=="True",Weight),by="Region"] + MD[NStudents>0 & Deprivation==0,weighted.mean(internet=="True",Weight),by="Region"] + + a<-MD[,weighted.mean(internet=="True",Weight),by="ProvinceName"] + a<- MD[Deprivation==0,weighted.mean(internet=="True",Weight),by="ProvinceName"] + a<-MD[NStudents>0,weighted.mean(internet=="True",Weight),by="ProvinceName"] + a<-MD[NStudents>0 & Deprivation==0,weighted.mean(internet=="True",Weight),by="ProvinceName"] + + + + + +} +X1<-X1[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X2<-X2[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X3<-X3[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] +X4<-X4[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] + + +endtime <- proc.time() + +cat("\n\n============================\nIt took ") +cat((endtime-starttime)[3]) \ No newline at end of file diff --git a/R/Archive/inflation.xlsx b/R/Archive/inflation.xlsx new file mode 100644 index 00000000..fe2f6eb6 Binary files /dev/null and b/R/Archive/inflation.xlsx differ diff --git a/R/Archive/job.R b/R/Archive/job.R new file mode 100644 index 00000000..dca9aea7 --- /dev/null +++ b/R/Archive/job.R @@ -0,0 +1,49 @@ +# 403-Filtering job status.R +# 2019: Arin Shahbazian + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================Filtering job status =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(stringr) +library(spatstat) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total1.rda")) + + + job<-Total[,.(HHID,Region,HActivityState,Main_Job_Name_Pub,PubWageNetIncomeY, + Main_Job_Name_Prv,PrvWageNetIncomeY, + Main_Job_Name_Cooperative,CooperativeWageNetIncomeY, + AgriEarners,Main_Job_Name_Agri,BussEarners, + Main_Job_Name_Buss, + Job_Main_Code_Pub,Job_Main_Code_Prv,Job_Main_Code_Cooperative, + Job_Main_Code_Buss,Job_Main_Code_Agri, + Original_Job_Name_Cooperative,CooperativeWageNetIncomeY, + AgriEarners,Original_Job_Name_Agri,BussEarners, + Original_Job_Name_Buss, + Job_Original_Code_Pub,Job_Original_Code_Prv,Job_Original_Code_Cooperative, + Job_Original_Code_Buss,Job_Original_Code_Agri, + Aid,Homemade, + Interest,Intra,Rent,Retirement,Subsidy)] + + job<-job[,job_Best:=min(Job_Main_Code_Pub,Job_Main_Code_Prv, + Job_Main_Code_Cooperative, + Job_Main_Code_Buss,Job_Main_Code_Agri)] + + + save(job,file=paste0(Settings$HEISProcessedPath,"Y",year,"job.rda")) + + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat(endtime-starttime) diff --git a/R/Archive/merge data.R b/R/Archive/merge data.R new file mode 100644 index 00000000..c3d5d766 --- /dev/null +++ b/R/Archive/merge data.R @@ -0,0 +1,43 @@ + + +load(file=paste0(Settings$HEISProcessedPath,"Y",90,"FinalPoor.rda")) +A90<-MD + +load(file=paste0(Settings$HEISProcessedPath,"Y",91,"FinalPoor.rda")) +A91<-MD + +load(file=paste0(Settings$HEISProcessedPath,"Y",92,"FinalPoor.rda")) +A92<-MD + +load(file=paste0(Settings$HEISProcessedPath,"Y",93,"FinalPoor.rda")) +A93<-MD + +load(file=paste0(Settings$HEISProcessedPath,"Y",94,"FinalPoor.rda")) +A94<-MD + +load(file=paste0(Settings$HEISProcessedPath,"Y",95,"FinalPoor.rda")) +A95<-MD + +load(file=paste0(Settings$HEISProcessedPath,"Y",96,"FinalPoor.rda")) +A96<-MD + +load(file=paste0(Settings$HEISProcessedPath,"Y",97,"FinalPoor.rda")) +A97<-MD + +load(file=paste0(Settings$HEISProcessedPath,"Y",98,"FinalPoor.rda")) +A98<-MD + +Data<-rbind(A90,A91) +Data<-rbind(Data,A92) +Data<-rbind(Data,A93) +Data<-rbind(Data,A94) +Data<-rbind(Data,A95) +Data<-rbind(Data,A96) +Data<-rbind(Data,A97) +Data<-rbind(Data,A98) + +write.csv(Data,file="Data.csv") + + + + diff --git a/R/Archive/nominal.R b/R/Archive/nominal.R new file mode 100644 index 00000000..bdd96f5c --- /dev/null +++ b/R/Archive/nominal.R @@ -0,0 +1,98 @@ +#170-Deciling for normal calculations.R +# +# Copyright © 2018:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Deciling for normal calculations =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) + +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + + ###Nominal- Country + MD<- MD[order(Total_Exp_Month_Per_nondurable),by=ProvinceCode] #Deciling in Country(Nominal) + MD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size),by=ProvinceCode] # Cumulative Relative Weight + MD[,Decile:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10)] + MD[,Percentile:=cut(crw2,breaks=seq(0,1,.01),labels=1:100)] + + Decile_Nominal<-MD[,.(HHID,Decile)] + +save(Decile_Nominal,file = paste0(Settings$HEISProcessedPath,"Y",year,"Decile_Nominal.rda")) + +} + +MD[,Pop2:=sum(Weight*Size),by=ProvinceName] + +Pooldar<-MD[as.numeric((Decile))>7] +Pooldar[,sum(Weight*Size),by=ProvinceName][order(V1)] +Pooldar[,Pop:=sum(Weight*Size)] +a<-Pooldar[,.(sum(Weight*Size)/Pop),by=ProvinceName] +a<-Pooldar[,.(sum(Weight*Size)/Pop2),by=ProvinceName] +#load(file = paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + +Poor<-MD[as.numeric((Decile))<4] +Poor[,sum(Weight*Size),by=ProvinceName][order(V1)] +Poor[,Pop:=sum(Weight*Size)] +a<-Poor[,.(sum(Weight*Size)/Pop),by=ProvinceName] +a<-Poor[,.(sum(Weight*Size)/Pop2),by=ProvinceName] + + + +Pooldar[CountyCode==2301,weighted.mean(Total_Exp_Month_Per,Weight)] +Pooldar[ProvinceCode==11,weighted.mean(Total_Exp_Month_Per,Weight)] + +Poor[CountyCode==2301,weighted.mean(Total_Exp_Month_Per,Weight)] +Poor[ProvinceCode==11,weighted.mean(Total_Exp_Month_Per,Weight)] + + +Pooldar[CountyCode==2301,weighted.mean(FoodExpenditure_Per,Weight)] +Pooldar[ProvinceCode==11,weighted.mean(FoodExpenditure_Per,Weight)] + +Poor[CountyCode==2301,weighted.mean(FoodExpenditure_Per,Weight)] +Poor[ProvinceCode==11,weighted.mean(FoodExpenditure_Per,Weight)] + +load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + +Total<-Total[,.(HHID,Job_Main_Code_Pub,Job_Main_Code_Cooperative,Job_Main_Code_Prv, + Job_Main_Code_Buss,Job_Main_Code_Agri)] + + + +Total[Total==0]<-NA + + +MD<-merge(MD,Total,by="HHID") +MD[,Job_Code:=pmin(Job_Main_Code_Pub,Job_Main_Code_Cooperative, + Job_Main_Code_Prv, + Job_Main_Code_Buss,Job_Main_Code_Agri,na.rm = TRUE)] + +MD[,Government:=ifelse(is.na(Job_Main_Code_Pub),0,1)] + +Government<-MD[Government==1] +Government2<-MD[Government==0] + +Government2[,weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight)] +Government[,weighted.mean(tenure=="AgainstService",Weight)] + +Government[,Pop_G:=sum(Weight*Size)] +Government2[,weighted.mean(car=="TRUE",Weight)] +a<-Government[,.(a=sum(Weight*Size)/Pop_G),by=Decile] + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Archive/poor properties.R b/R/Archive/poor properties.R new file mode 100644 index 00000000..43dfbd64 --- /dev/null +++ b/R/Archive/poor properties.R @@ -0,0 +1,448 @@ +# 168-Step8-PovertyStats.R +# +# Copyright © 2018-2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Properties =====================================\n") +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(writexl) +library(ggplot2) + +Data11 <- data.table(Year = numeric(0),FinalPoor = numeric(0)) +Data12 <- data.table(Year = numeric(0),FinalPoor = numeric(0),Region= NA_character_) +Data13 <- data.table(Year = numeric(0),FinalPoor = numeric(0),HMarritalState= NA_character_) + +Data <- data.table(Year = numeric(0),House = numeric(0),car = numeric(0),Knowledge= numeric(0), + Meat_Gram = numeric(0),Chicken_Gram = numeric(0),Rice_Gram= numeric(0), + internet = numeric(0),HEduYears = numeric(0),NEmployed = numeric(0), + HSex = numeric(0),HActivityState = numeric(0),Job_Code_Poor = numeric(0), + Job_Code_Rich = numeric(0),Engle = numeric(0),TFoodKCaloriesHH_Per = numeric(0), + FoodProtein_Per = numeric(0),Government = numeric(0),FinalPoor= numeric(0)) + +Data2 <- data.table(Year = numeric(0),House = numeric(0),car = numeric(0),Knowledge= numeric(0), + Meat_Gram = numeric(0),Chicken_Gram = numeric(0),Rice_Gram= numeric(0), + internet = numeric(0),HEduYears = numeric(0),NEmployed = numeric(0), + HSex = numeric(0),HActivityState = numeric(0),Job_Code_Poor = numeric(0), + Job_Code_Rich = numeric(0),Engle = numeric(0),TFoodKCaloriesHH_Per = numeric(0), + FoodProtein_Per = numeric(0),Government = numeric(0),FinalPoor= numeric(0) + ,Region= NA_character_) + +Data3 <- data.table(Year = numeric(0),House = numeric(0),car = numeric(0),Knowledge= numeric(0), + internet = numeric(0),HEduYears = numeric(0),NEmployed = numeric(0), + Meat_Gram = numeric(0),Chicken_Gram = numeric(0),Rice_Gram= numeric(0), + HSex = numeric(0),HActivityState = numeric(0),Job_Code_Poor = numeric(0), + Job_Code_Rich = numeric(0),Engle = numeric(0),TFoodKCaloriesHH_Per = numeric(0), + FoodProtein_Per = numeric(0),Government = numeric(0),FinalPoor= numeric(0) + ,Region2= NA_character_) + +Data4 <- data.table(Year = numeric(0),House = numeric(0),car = numeric(0),Knowledge= numeric(0), + Meat_Gram = numeric(0),Chicken_Gram = numeric(0),Rice_Gram= numeric(0), + internet = numeric(0),HEduYears = numeric(0),NEmployed = numeric(0), + HSex = numeric(0),HActivityState = numeric(0),Job_Code_Poor = numeric(0), + Job_Code_Rich = numeric(0),Engle = numeric(0),TFoodKCaloriesHH_Per = numeric(0), + FoodProtein_Per = numeric(0),Government = numeric(0) + ,Region3= NA_character_) + +year<-98 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Total2.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"BigFData.rda")) + load( file = paste0(Settings$HEISProcessedPath,"Y",year,"tahsil.rda")) + + Total<-Total[,.(HHID,Job_Main_Code_Pub,Job_Main_Code_Cooperative,Job_Main_Code_Prv, + Job_Main_Code_Buss,Job_Main_Code_Agri)] + + Meat<-BigFData[FoodType=="Meat"] + Chicken<-BigFData[FoodType=="Chicken"] + Rice<-BigFData[FoodType=="Rice"] + + Meat[,Meat_Gram:=FGrams] + Chicken[,Chicken_Gram:=FGrams] + Rice[,Rice_Gram:=FGrams] + + Meat<-Meat[,.(HHID,Meat_Gram)] + Chicken<-Chicken[,.(HHID,Chicken_Gram)] + Rice<-Rice[,.(HHID,Rice_Gram)] + + Meat<-Meat[,lapply(.SD,sum),by="HHID",.SDcols=c("Meat_Gram")] + Chicken<-Chicken[,lapply(.SD,sum),by="HHID",.SDcols=c("Chicken_Gram")] + Rice<-Rice[,lapply(.SD,sum),by="HHID",.SDcols=c("Rice_Gram")] + + Total[Total==0]<-NA + + MD<-merge(MD,HHHouseProperties,by="HHID") + MD<-merge(MD,Total,by="HHID") + MD[,Job_Code:=pmin(Job_Main_Code_Pub,Job_Main_Code_Cooperative, + Job_Main_Code_Prv, + Job_Main_Code_Buss,Job_Main_Code_Agri,na.rm = TRUE)] + + MD<-merge(MD,School[,.(HHID,Knowledge)],by="HHID") + + MD<-merge(MD,Meat,by="HHID",all.x = TRUE) + MD<-merge(MD,Chicken,by="HHID",all.x = TRUE) + MD<-merge(MD,Rice,by="HHID",all.x = TRUE) + + MD[is.na(Meat_Gram),Meat_Gram:=0] + MD[is.na(Chicken_Gram),Chicken_Gram:=0] + MD[is.na(Rice_Gram),Rice_Gram:=0] + + MD[,Meat_Gram:=Meat_Gram/EqSizeCalory] + MD[,Chicken_Gram:=Chicken_Gram/EqSizeCalory] + MD[,Rice_Gram:=Rice_Gram/EqSizeCalory] + + MD[,Government:=ifelse(is.na(Job_Main_Code_Pub),0,1)] + + MD[,Region2:=ifelse(NewArea_Name=="Sh_Tehran","Sh_Tehran","Other")] + + MD[,Region3:=ifelse(NewArea_Name=="Sh_Tehran","Sh_Tehran", + ifelse(ProvinceCode==11,"Sistan", + ifelse(Region=="Urban","Urban","Rural")))] + + Female<-MD[HSex=="Female"] + Female[,Pop:=sum(Weight*Size)] + Female2<-Female[,.(share=sum(Weight*Size)/Pop),by=c("HMarritalState","FinalPoor")] + Female2[,Year:=98] + + ggplot(Female2, aes(fill=factor(FinalPoor), y=share, x=factor(HMarritalState))) + + geom_bar(position="dodge", stat="identity") + + #scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(share,2)), position = position_dodge(width=0.9), vjust=-0.5) + + Female3<-Female[,.(FinalPoor=weighted.mean(FinalPoor==1,Weight))] + Female3[,Year:=year] + Data11 <- rbind(Data11,Female3) + ggplot(Data11, aes(fill=factor(FinalPoor), y=FinalPoor, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(FinalPoor,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + Female4<-Female[,.(FinalPoor=weighted.mean(FinalPoor==1,Weight)),by="Region"] + Female4[,Year:=year] + Data12 <- rbind(Data12,Female4) + Data12<-Data12[Region=="Urban" | Region=="Rural"] + ggplot(Data12, aes(fill=factor(Region), y=FinalPoor, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(FinalPoor,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + Female5<-Female[,.(FinalPoor=weighted.mean(FinalPoor==1,Weight)),by="HMarritalState"] + Female5[,Year:=year] + Data13 <- rbind(Data13,Female5) + Data13<-Data13[Year==90 | Year==91 | Year==92 | Year==93 | Year==94 | + Year==95 | Year==96 | Year==97 | Year==98] + ggplot(Data13, aes(fill=factor(HMarritalState), y=FinalPoor, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=15))+ + geom_text(aes(label=round(FinalPoor,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Female3, aes(fill=factor(FinalPoor), y=Government, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Government,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + A<-MD[,.(House=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight), + car=weighted.mean(car=="TRUE",Weight), + internet=weighted.mean(internet=="TRUE",Weight), + HEduYears=weighted.mean(HEduYears,Weight), + Meat_Gram=weighted.mean(Meat_Gram,Weight), + Chicken_Gram=weighted.mean(Chicken_Gram,Weight), + Rice_Gram=weighted.mean(Rice_Gram,Weight), + NEmployed=weighted.mean(NEmployed,Weight), + Government=weighted.mean(Government,Weight), + Knowledge=weighted.mean(Knowledge,Weight,na.rm = TRUE), + HSex=weighted.mean(HSex=="Female",Weight), + HActivityState=weighted.mean(HActivityState=="Employed",Weight), + Job_Code_Poor=weighted.mean(Job_Code==9,Weight,na.rm = TRUE), + Job_Code_Rich=weighted.mean(Job_Code==1 | Job_Code==2,Weight,na.rm = TRUE), + Engle=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + TFoodKCaloriesHH_Per=weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE), + FoodProtein_Per=weighted.mean(FoodProtein_Per,Weight,na.rm = TRUE)),by=FinalPoor] + + A[,Year:=year] + Data <- rbind(Data,A) + + ggplot(Data, aes(fill=factor(FinalPoor), y=Government, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Government,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=car, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(car,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=House, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.8,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(House,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=HEduYears, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,10,1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(HEduYears,1)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=NEmployed, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,1.5,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(NEmployed,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=HSex, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,0.5,0.05))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(HSex,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=HActivityState, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,1,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(HActivityState,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=Job_Code_Poor, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,1,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Job_Code_Poor,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=Job_Code_Rich, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,1,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Job_Code_Rich,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=Engle, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,1,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Engle,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=TFoodKCaloriesHH_Per, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,3200,200))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(TFoodKCaloriesHH_Per,1)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=FoodProtein_Per, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,120,10))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(FoodProtein_Per,1)), position = position_dodge(width=0.9), vjust=-0.5) + + ggplot(Data, aes(fill=factor(FinalPoor), y=Knowledge, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + scale_y_continuous(breaks=seq(0,120,10))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Knowledge,2)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=Meat_Gram, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + #scale_y_continuous(breaks=seq(0,120,10))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Meat_Gram,1)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=Chicken_Gram, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + #scale_y_continuous(breaks=seq(0,120,10))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Chicken_Gram,1)), position = position_dodge(width=0.9), vjust=-0.5) + + + ggplot(Data, aes(fill=factor(FinalPoor), y=Rice_Gram, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + #scale_y_continuous(breaks=seq(0,120,10))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Rice_Gram,1)), position = position_dodge(width=0.9), vjust=-0.5) + + + + B<-MD[,weighted.mean(FinalPoor,Weight),by=HSex] + + + + Government<-MD[Government==1] + Government2<-MD[Government==0] + + Government2[,weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight)] + Government[,weighted.mean(tenure=="AgainstService",Weight)] + + Government[,Pop_G:=sum(Weight*Size)] + Government2[,weighted.mean(car=="TRUE",Weight)] + a<-Government[,.(a=sum(Weight*Size)/Pop_G),by=Decile] + Government2[,weighted.mean(TFoodKCaloriesHH_Per,Weight*Size)] + Government2[,weighted.mean(FoodProtein_Per,Weight*Size)] + Government[,weighted.mean(FinalPoor,Weight*Size)] + + MD[,weighted.mean(FinalPoor,Weight*Size),by=Government] + + + B<-MD[,.(House=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight), + car=weighted.mean(car=="TRUE",Weight), + internet=weighted.mean(internet=="TRUE",Weight), + HEduYears=weighted.mean(HEduYears,Weight), + Meat_Gram=weighted.mean(Meat_Gram,Weight), + Chicken_Gram=weighted.mean(Chicken_Gram,Weight), + Rice_Gram=weighted.mean(Rice_Gram,Weight), + NEmployed=weighted.mean(NEmployed,Weight), + Government=weighted.mean(Government,Weight), + Knowledge=weighted.mean(Knowledge,Weight,na.rm = TRUE), + HSex=weighted.mean(HSex=="Female",Weight), + HActivityState=weighted.mean(HActivityState=="Employed",Weight), + Job_Code_Poor=weighted.mean(Job_Code==9,Weight,na.rm = TRUE), + Job_Code_Rich=weighted.mean(Job_Code==1 | Job_Code==2,Weight,na.rm = TRUE), + Engle=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + TFoodKCaloriesHH_Per=weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE), + FoodProtein_Per=weighted.mean(FoodProtein_Per,Weight,na.rm = TRUE)),by=c("FinalPoor","Region")] + + B[,Year:=year] + Data2 <- rbind(Data2,B) + + C<-MD[,.(House=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight), + car=weighted.mean(car=="TRUE",Weight), + internet=weighted.mean(internet=="TRUE",Weight), + HEduYears=weighted.mean(HEduYears,Weight), + NEmployed=weighted.mean(NEmployed,Weight), + Meat_Gram=weighted.mean(Meat_Gram,Weight), + Chicken_Gram=weighted.mean(Chicken_Gram,Weight), + Rice_Gram=weighted.mean(Rice_Gram,Weight), + Government=weighted.mean(Government,Weight), + Knowledge=weighted.mean(Knowledge,Weight,na.rm = TRUE), + HSex=weighted.mean(HSex=="Female",Weight), + HActivityState=weighted.mean(HActivityState=="Employed",Weight), + Job_Code_Poor=weighted.mean(Job_Code==9,Weight,na.rm = TRUE), + Job_Code_Rich=weighted.mean(Job_Code==1 | Job_Code==2,Weight,na.rm = TRUE), + Engle=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + TFoodKCaloriesHH_Per=weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE), + FoodProtein_Per=weighted.mean(FoodProtein_Per,Weight,na.rm = TRUE)),by=c("FinalPoor","Region2")] + + C[,Year:=year] + Data3 <- rbind(Data3,C) + + + Z<-Data2[Region=="Urban"] + png(file="C:/IRHEIS/R/11.png",width=1200, height=750) + ggplot(Z, aes(fill=factor(FinalPoor), y=Rice_Gram, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + #scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Rice_Gram,1)), position = position_dodge(width=0.9), vjust=-0.5) + dev.off() + + + Z<-Data2[Region=="Rural"] + png(file="C:/IRHEIS/R/12.png",width=1200, height=750) + ggplot(Z, aes(fill=factor(FinalPoor), y=Rice_Gram, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + # scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Rice_Gram,1)), position = position_dodge(width=0.9), vjust=-0.5) + dev.off() + + Z<-Data3[Region2=="Sh_Tehran"] + png(file="C:/IRHEIS/R/13.png",width=1200, height=750) + ggplot(Z, aes(fill=factor(FinalPoor), y=Rice_Gram, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + # scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=20))+ + geom_text(aes(label=round(Rice_Gram,1)), position = position_dodge(width=0.9), vjust=-0.5) + dev.off() + + + D<-MD[FinalPoor==1,.(House=weighted.mean(tenure=="OwnLandandBuilding" | tenure=="Apartment",Weight), + car=weighted.mean(car=="TRUE",Weight), + internet=weighted.mean(internet=="TRUE",Weight), + HEduYears=weighted.mean(HEduYears,Weight), + NEmployed=weighted.mean(NEmployed,Weight), + Meat_Gram=weighted.mean(Meat_Gram,Weight), + Chicken_Gram=weighted.mean(Chicken_Gram,Weight), + Rice_Gram=weighted.mean(Rice_Gram,Weight), + Government=weighted.mean(Government,Weight), + HSex=weighted.mean(HSex=="Female",Weight), + Knowledge=weighted.mean(Knowledge,Weight,na.rm = TRUE), + HActivityState=weighted.mean(HActivityState=="Employed",Weight), + Job_Code_Poor=weighted.mean(Job_Code==9,Weight,na.rm = TRUE), + Job_Code_Rich=weighted.mean(Job_Code==1 | Job_Code==2,Weight,na.rm = TRUE), + Engle=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + TFoodKCaloriesHH_Per=weighted.mean(TFoodKCaloriesHH_Per,Weight,na.rm = TRUE), + FoodProtein_Per=weighted.mean(FoodProtein_Per,Weight,na.rm = TRUE)),by=c("Region3")] + + D[,Year:=year] + Data4 <- rbind(Data4,D) + + Data4<-Data4[Region3=="Urban" | Region3=="Rural" | Region3=="Sh_Tehran" | Region3=="Sistan"] + + png(file="C:/IRHEIS/R/21.png",width=1200, height=750) + ggplot(Data4, aes(fill=factor(Region3), y=Rice_Gram, x=Year)) + + geom_bar(position="dodge", stat="identity") + + scale_x_continuous(breaks=seq(90,98,1))+ + # scale_y_continuous(breaks=seq(0,0.7,0.1))+ + theme(text = element_text(size=15))+ + geom_text(aes(label=round(Rice_Gram,1)), position = position_dodge(width=0.9), vjust=-0.5) + dev.off() + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took",(endtime-starttime)["elapsed"],"seconds") diff --git a/R/Archive/refah/ActivityR.png b/R/Archive/refah/ActivityR.png new file mode 100644 index 00000000..1b3363ff Binary files /dev/null and b/R/Archive/refah/ActivityR.png differ diff --git a/R/Archive/refah/ActivityU.png b/R/Archive/refah/ActivityU.png new file mode 100644 index 00000000..3af2f5bd Binary files /dev/null and b/R/Archive/refah/ActivityU.png differ diff --git a/R/Archive/refah/CarR.png b/R/Archive/refah/CarR.png new file mode 100644 index 00000000..80b6bebb Binary files /dev/null and b/R/Archive/refah/CarR.png differ diff --git a/R/Archive/refah/CarU.png b/R/Archive/refah/CarU.png new file mode 100644 index 00000000..4340c646 Binary files /dev/null and b/R/Archive/refah/CarU.png differ diff --git a/R/Archive/refah/ExpR.png b/R/Archive/refah/ExpR.png new file mode 100644 index 00000000..6d345e08 Binary files /dev/null and b/R/Archive/refah/ExpR.png differ diff --git a/R/Archive/refah/ExpU.png b/R/Archive/refah/ExpU.png new file mode 100644 index 00000000..f6db1b4c Binary files /dev/null and b/R/Archive/refah/ExpU.png differ diff --git a/R/Archive/refah/tenureR.png b/R/Archive/refah/tenureR.png new file mode 100644 index 00000000..32200333 Binary files /dev/null and b/R/Archive/refah/tenureR.png differ diff --git a/R/Archive/refah/tenureU.png b/R/Archive/refah/tenureU.png new file mode 100644 index 00000000..f4b9d9d5 Binary files /dev/null and b/R/Archive/refah/tenureU.png differ diff --git a/R/DataChecking-01-HouseMeterPrices.R b/R/DataChecking-01-HouseMeterPrices.R new file mode 100644 index 00000000..eb31eba1 --- /dev/null +++ b/R/DataChecking-01-HouseMeterPrices.R @@ -0,0 +1,125 @@ +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +mydir <- "E:/Refah Economy/IRHEIS-master update30-9/IRHEIS-master/R" +setwd(mydir) + +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) + +bigMD <- data.table() +for(year in (88:99)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"HHHouseProperties.rda")) + + SMD <- MD[,.(HHID,Year,Quarter,Month,Region,ProvinceCode,ProvinceName, + CountyCode,CountyName,NewArea,NewArea_Name,Weight,House_Exp,MainHouse_Exp,MeterPrice)] + SMD <- merge(SMD,HHHouseProperties[,.(HHID,tenure,area)]) + + bigMD <- rbind(bigMD,SMD) +} + +bigMD <- bigMD[!is.na(MeterPrice)] + +bigMD[,GenClass:=ifelse(grepl("Sh_Tehran",NewArea_Name),"Tehran",NA)] +bigMD[is.na(GenClass),GenClass:=ifelse(grepl("Sh_",NewArea_Name),"BigUrbanCounty",NA)] +bigMD[is.na(GenClass) & Region=="Urban",GenClass:="Urabn"] +bigMD[is.na(GenClass) & Region=="Rural",GenClass:="Rural"] + +bigMD[,HouseOwner:=tenure %in% c("OwnLandandBuilding","Apartment")] + +bigMD[tenure=="OwnLandandBuilding",HouseStatus:="Owns"] +bigMD[tenure=="Apartment",HouseStatus:="Owns"] +bigMD[tenure=="Rented",HouseStatus:="Rented"] +bigMD[tenure=="Mortgage",HouseStatus:="Rented"] +bigMD[tenure=="AgainstService",HouseStatus:="ForService"] +bigMD[tenure=="Free",HouseStatus:="Free"] +bigMD[tenure=="Other",HouseStatus:="Other"] + +table(bigMD$GenClass) +windowsFonts(Cal = windowsFont("Calibri"), + CamM = windowsFont("Cambria Math"), + BNZ = windowsFont("B Nazanin"), + XBN = windowsFont("XB Niloofar")) + +#den <- density(x = (bigMD$MeterPrice), weights = bigMD$Weight/sum(bigMD$Weight)) +den <- density(x = log(bigMD$MeterPrice), weights = bigMD$Weight/sum(bigMD$Weight)) + +library(hrbrthemes) +bigMD[,ygn:=.N,by=.(Year,GenClass)] +bigMD[,yghn:=.N,by=.(Year,GenClass,HouseOwner)] +bigMD[,mean(yghn/ygn),by=.(Year,GenClass,HouseOwner)] +g1 <- ggplot(bigMD,aes(x=log(MeterPrice),group=factor(HouseOwner,levels = c(TRUE,FALSE))))+ + geom_density(aes(color=HouseOwner, + fill=HouseOwner, + weight=Weight/sum(Weight), + alpha=yghn/ygn), + ,adjust=1.5)+ + facet_grid(Year~GenClass)+theme_bw() + +ggsave("G1.png",g1,width = 20,height = 20) + +TehMD <- bigMD[GenClass=="Tehran" & Year %in% c(96:99)] +TehMD[,yhn:=.N,by=.(Year,HouseStatus)] +TehMD[,yn:=.N,by=.(Year)] +TehMD[,mean(yhn/yn),by=.(Year,HouseStatus)] + +g2 <- ggplot(TehMD,aes(x=log(MeterPrice),group=factor(HouseStatus,levels=c("Owns","Rented","Free","ForService"))))+ + geom_density(aes(color=HouseStatus, + fill=HouseStatus, + weight=Weight/sum(Weight), + alpha=yhn/yn), + adjust=1.5)+ + facet_grid(Year~GenClass)+ theme_bw() + +ggsave("G2.png",g2,width = 6,height = 8) + +spdhhs <- bigMD[GenClass=="Tehran" & Year==99 & log(MeterPrice)<11,HHID] + +bigMD[HHID %in% spdhhs & Year==99,.(log(MeterPrice),tenure)] +View(bigMD[HHID %in% spdhhs,.(HHID,GenClass,Year,HouseStatus,House_Exp,MainHouse_Exp,area,MeterPrice)]) + +par(family="XBN", cex=1) +plot(den,xaxt = "n",yaxt="n",main = "",xlab = "",ylab = "",lwd=2) + +xlbln <- c(1e2,1e3,1e4,1e5,1e6,1e8) +xlbls <- c("صد","هزار","ده هزار","صد هزار","میلیون","صد میلیون") +xlbls <- paste("\u202B",xlbls) +axis(1, at=log(xlbln), labels=xlbls) +axis(2, at=c(0,.05,.1,.15,.2,.25,.30), labels=c("۰٫۰۰","۰٫۰۵","۰٫۱۰", + "۰٫۱۵","۰٫۲۰","۰٫۲۵","۰٫۳۰")) +legend(13, .25, legend=c("میانگین" + , "مد", + "میانه"), + col=c("red", "blue","green"),lty=1:3,lwd=1,text.font=2) +den$xorig <- den$x +x0 <- den$x[-length(den$x)] +x1 <- den$x[-1] +dx <- x1-x0 +x <- (x0+x1)/2 +maxxinD2ex <- max(which(x10, + weighted.mean(`71111`+`71112`+`71116`+ + `71117`,Weight)] + A2<-Value[`91128`+`91129`>0,weighted.mean(`91128`+`91129`,Weight)] + A3<-Value[`53112`>0,weighted.mean(`53112`,Weight)] + A4<-Value[`53116`>0,weighted.mean(`53116`,Weight)] + A5<-Value[`53113`>0,weighted.mean(`53113`,Weight)] + A6<-Value[`82113`>0,weighted.mean(`82113`,Weight)] + A7<-Value[`53125`>0,weighted.mean(`53125`,Weight)] + A8<-Value[`91311`>0,weighted.mean(`91311`,Weight)] + A9<-Value[`72111`>0,weighted.mean(`72111`,Weight)] + if (year!=92){ + A10<-Value[`72118`>0,weighted.mean(`72118`,Weight)] + } + A11<-Value[`72319`>0,weighted.mean(`72319`,Weight)] + + Value[car=="True",Added1:=A1-Auto_Sale] ### We use 0.05 instead of 0.1 + Value[tvcr=="True",Added2:=A2-TV_Sale] + Value[freezer=="True" | frez_refrig=="True" | refrigerator=="True", + Added3:=A3-yakhchal_Sale] + Value[oven=="True",Added4:=A4-ojaghgaz_Sale] + Value[washer=="True",Added5:=A5-lebasshooyi_Sale] + Value[cellphone=="True",Added6:=A6-Mobile_Sale] + Value[cooler_gas=="True",Added7:=A7-Coolergazi_Sale] + Value[computer=="True",Added8:=A8-PC_Sale] + Value[car=="True",Added9:=A9-lastik_Sale] + if (year!=92){ + Value[car=="True",Added10:=A10] + } + Value[car=="True",Added11:=A11] + + + + + + Value[,Weight:=NULL] + if (year!=92){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111", "72118","72319") + } + if (year==92){ + dep <- c( "71111", "71112","71116", "71117", + "91128", "91129","53112", "53116", + "53113", "82113","53125", "91311", + "72111","72319") + } + + Value[, Total_Depreciated_Durable := Reduce(`+`, .SD), .SDcols=dep] + #Value[is.na(Value)] <- 0 + + if (year!=92){ + Value[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added10+Added11] + } + if (year==92){ + Value[,Added:=Added1+Added2+Added3+Added4+Added5+Added6+ + Added7+Added8+Added9+Added11] + } + #load Expenditures + + for(G in c("Foods","Cigars","Cloths","Amusements","Communications", + "Durables", "Education", "Furnitures","HotelRestaurants", + "HouseandEnergys","House", "Medicals","Hygienes","Transportations","Others", + "Resturants" + ,"Durablele_Detail" + )){ + load(file=paste0(Settings$HEISProcessedPath,"Y",year,G,".rda")) + + } + + # load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Added_Food.rda")) + + #load Calories + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Food_Calories.rda")) + FData[,Region:=NULL] + #for (col in c("FoodKCaloriesHH")) FData[is.na(get(col)), (col) := 0] + FData <- FData[FoodKCaloriesHH>0] + + #merge groups + MD<-merge(HHBase,HHI ,by =c("HHID"),all=TRUE) + FData[,Size:=NULL] + MD<-merge(MD,FData ,by =c("HHID"),all=TRUE) + MD<-merge(MD,HHWeights ,by =c("HHID"),all=TRUE) + MD<-merge(MD,FoodData,by =c("HHID"),all=TRUE) + # MD<-merge(MD,Added_Food,by =c("HHID"),all=TRUE) + MD<-merge(MD,CigarData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ClothData,by =c("HHID"),all=TRUE) + MD<-merge(MD,AmusementData,by =c("HHID"),all=TRUE) + MD<-merge(MD,CommunicationData,by =c("HHID"),all=TRUE) + MD<-merge(MD,EducData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseandEnergyData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HouseData,by =c("HHID"),all=TRUE) + MD<-merge(MD,FurnitureData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HotelRestaurantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,HygieneData,by =c("HHID"),all=TRUE) + MD<-merge(MD,TransportationData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BenzinData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,GazData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,BarghData,by =c("HHID"),all=TRUE) + #MD<-merge(MD,NaftSefidData,by =c("HHID"),all=TRUE) + MD<-merge(MD,OtherData,by =c("HHID"),all=TRUE) + MD<-merge(MD,MedicalData,by =c("HHID"),all=TRUE) + # MD<-merge(MD,NonFreeDurableData,by =c("HHID"),all=TRUE) + MD<-merge(MD,ResturantData,by =c("HHID"),all=TRUE) + MD<-merge(MD,Durablele_Detail,by =c("HHID"),all=TRUE) + MD<-merge(MD,Value,by =c("HHID"),all=TRUE) + #MD<-merge(MD,InvestmentData,by =c("HHID"),all=TRUE) + for (col in c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", "Cloth_Exp", "Amusement_Exp", + "Communication_Exp", "Education_Exp", "HouseandEnergy_Exp", + "Furniture_Exp", "HotelRestaurant_Exp", "Hygiene_Exp", "Transportation_Exp", + "Other_Exp", "Medical_Exp", + "Resturant_Exp","Durable_Exp", "Durable_Pure_Exp" + ,"Add_to_NonDurable","Durable_Dep", + "Durable_NoDep","Durable_Emergency","Total_Depreciated_Durable" + )) + MD[is.na(get(col)), (col) := 0] + # MD<-MD[,Yaraneh:=416000*Size] + + MD<-merge(MD,Calorie_Need) + #load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Durablele_Detail.rda")) + #MD<-merge(MD,Durablele_Detail) + + + + + # "", ,"ServiceExp" + #,"","Durable_Dep", "","","" + + + #Calculate Monthly Total Expenditures + d <- c("OriginalFoodExpenditure", + "FoodOtherExpenditure", + "Cigar_Exp", "Cloth_Exp", + "HouseandEnergy_Exp", "Furniture_Exp", "Hygiene_Exp", "Medical_Exp", "Transportation_Exp", + "Communication_Exp", "Amusement_Exp", "HotelRestaurant_Exp", "Other_Exp" + #,"Added" + ) + nd <- c("Durable_Pure_Exp" + ,"Education_Exp" + ) + f <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp") + + + h <- c("HouseandEnergy_Exp") + furn <- c("Furniture_Exp") + b<- c( "Hygiene_Exp","Medical_Exp") + zirs <- c("Transportation_Exp","Communication_Exp") + #"", # "", "Amusement_Exp", "HotelRestaurant_Exp", "Other_Exp" + #,"Added" + + # w <- c(nw, "Medical_Exp", "NonFreeDurable_Exp") + #w <- c(nw, "Medical_Exp", "Durable_Pure_Exp") + # pw <- c(nw, "Added_Food_Exp_Month") + #Lw <- c(pw, "Medical_Exp", "Durable_Exp") + + MD[, Total_Exp_Month_ND := Reduce(`+`, .SD), .SDcols=nd] + MD[, Total_Exp_Month_durable := Reduce(`+`, .SD), .SDcols=d] + MD[, Total_Exp_Month_food := Reduce(`+`, .SD), .SDcols=f] + MD[, Total_Exp_Month_house := Reduce(`+`, .SD), .SDcols=h] + MD[, Total_Exp_Month_furniture := Reduce(`+`, .SD), .SDcols=furn] + MD[, Total_Exp_Month_behdasht := Reduce(`+`, .SD), .SDcols=b] + MD[, Total_Exp_Month_zirs := Reduce(`+`, .SD), .SDcols=zirs] + #cat(MD[,weighted.mean(Total_Exp_Month,Weight)]) +# cat(MD[,weighted.mean(Total_Exp_Month_nondurable,Weight)]) + MD<-merge(MD,HHWeights) + MD1 <- MD[,.(HHID,Total_Exp_Month_ND,Total_Exp_Month_durable,Weight,Region,Size, Durable_Exp, + Total_Exp_Month_ND ,Total_Exp_Month_durable, Total_Exp_Month_food , Total_Exp_Month_house, + Total_Exp_Month_furniture , Total_Exp_Month_behdasht, Total_Exp_Month_zirs + ,NewArea,NewArea_Name, Total_Exp_Month_food,Total_Exp_Month_house)] + MD1 <- MD1[,Texp:=(Total_Exp_Month_ND+Total_Exp_Month_durable)*12] + MD1 <- MD1[,TFexp:=Total_Exp_Month_food*12] + + MD1 <- MD1[order(Region, Texp)] # I removed Region from ordering, deciling is not divided + #into rural/urban (M.E. 5/11/2020) + + + MD1 <- MD1[,crw:=cumsum(Weight)/sum(Weight),by=Region] # Cumulative Relative Weight + MD1 <- MD1[,crexp:=cumsum(Texp*Weight)/sum(Texp*Weight),by=Region] # Cumulative Relative Weight + MD1 <- MD1[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10),by=Region] + MD1 <- MD1[,Decile_amar:=Decile] + MD_amar <- MD1[,.(HHID,Region,Decile_amar,Texp)] + cat(MD1[,sum(Weight*Size)]) + save(MD_amar,file=paste0(Settings$HEISProcessedPath,"Y",year,"Decile_amar.rda")) + + IncomeTable <- data.table() + IncomeTable<- MD1[] + IncomeTable<-IncomeTable[!is.na(Weight)] + g <- data.table() + g <- IncomeTable[,weighted.gini(Texp,Weight)] + g <- g[,Year:=year] + g_r <- data.table() + g_r <- IncomeTable[Region=="Rural",weighted.gini(Texp,Weight)] + g_r <- g_r[,Region:="Rural"] + g_r <- g_r[,Year:=year] + g_u <- data.table() + g_u <- IncomeTable[Region=="Urban",weighted.gini(Texp,Weight)] + g_u <- g_u[,Region:="Urban"] + g_u <- g_u[,Year:=year] + g1 <- rbind(g1,g) + g1_u <- rbind(g1_u,g_u) + g1_r <- rbind(g1_r,g_r) + MD1 <- MD1[,Exp_Reg:=weighted.mean(Texp,Weight)/10^6, by=c("Region")] + MD1 <- MD1[,Exp_h_Reg:=weighted.mean(Total_Exp_Month_house,Weight)*12/10^6, by=c("Region")] + MD1 <- MD1[order(Region, NewArea_Name)] + MD1 <- MD1[,Exp_f_Reg:=weighted.mean(TFexp,Weight)/10^6, by=c("Region")] + MD1 <- MD1[,food_ratio_Reg:=Exp_f_Reg/Exp_Reg] + MD1 <- MD1[,hous_ratio_Reg:=Exp_h_Reg/Exp_Reg] + MD1 <- MD1[,Exp_decile:=weighted.mean(Texp ,Weight) , by=c("Region", "Decile") ] + MD1 <- MD1[,Exp_f_decile:=weighted.mean(TFexp ,Weight) , by=c("Region", "Decile") ] + MD1 <- MD1[,Exp_h_decile:=weighted.mean(Total_Exp_Month_house ,Weight) , by=c("Region", "Decile") ] + MD2 <- MD1[,.(Exp_decile, Decile,Region,Exp_f_decile,Exp_h_decile,food_ratio_Reg,hous_ratio_Reg)] + MD2 <- unique(MD2) + MD2 <- MD2[,food_ratio:=Exp_f_decile/Exp_decile] + MD2 <- MD2[,hous_ratio:=Exp_h_decile/Exp_decile*12] + MD2 <- MD2[, Year:=year] + MDq <- rbind(MD2,MDq) + #MDq <- merge(MDq,g,by=c("Year")) + #MD2 <- MD2[,gini1:=weighted.gini(Exp_decile,Weight )] + #MD1 <- MD1[,Exp_decile:=weighted.mean(Texp,Weight), by=c(Region,Decile)] + + #cat(MD1[Region=="Urban",weighted.mean(Exp_f_Reg,Weight,na.rm = TRUE)],"\t") + # cat(MD1[Region=="Urban",weighted.mean(Exp_Reg,Weight,na.rm = TRUE)],"\n") + + + #cat(MD[,weighted.mean(Added1,Weight,na.rm = TRUE)],"\n") + + + } + +colnames(g1_u)[colnames(g1_u) == 'Gini'] <- 'Gini_u' +colnames(g1_r)[colnames(g1_r) == 'Gini'] <- 'Gini_r' +Final <- data.table() +Final <- merge(MDq,g1[,.(Gini,Year)]) +Final <- merge(Final,g1_u[,.(Gini_u,Year,Region)],by=c("Year","Region"),all =TRUE) +Final <- merge(Final,g1_r[,.(Gini_r,Year,Region)],by=c("Year","Region"),all =TRUE) + +library(writexl) +write_xlsx(Final,"E:/decile_exp.xlsx") + diff --git a/R/Decile/decile_nominal.R b/R/Decile/decile_nominal.R new file mode 100644 index 00000000..73b3c492 --- /dev/null +++ b/R/Decile/decile_nominal.R @@ -0,0 +1,47 @@ + +rm(list=ls()) + +Dcile <- data.table() + +starttime <- proc.time() +cat("\n\n================ Deciling for normal calculations =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +#library(readxl) +library(data.table) +library(ggplot2) +Dcile<-data.table() +year <- 98 +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + + # load data -------------------------------------- + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + + ###Nominal- Country + MD<- MD[order(Region, Total_Exp_Month_Per_nondurable)] #Deciling in Countrym region(Nominal) + MD <- MD[,crw2:=cumsum(Weight*Size)/sum(Weight*Size),by=Region] # Cumulative Relative Weight + + MD[,Decile:=cut(crw2,breaks = seq(0,1,.1),labels = 1:10),by=Region] + MD[,Percentile:=cut(crw2,breaks=seq(0,1,.01),labels=1:100),by=Region] + MD1 <- MD[,.(Region,crw2,Total_Exp_Month_Per_nondurable,Weight,Size,Decile)] + MD1 <- MD1[,.(Texp_per_Decile=sum(Total_Exp_Month_Per_nondurable*Weight*Size)/sum(Weight*Size)),by=c("Decile","Region")] + MD1 <- MD1[, Year:=year] + Dcile <- rbind(Dcile,MD1) + + NRMD <- MD[,.(HHID,Decile,Percentile,Region)] + colnames(NRMD)[colnames(NRMD) == 'Decile'] <- 'Decile_NonReal' + cat(MD[,sum(Weight*Size)]) + save(NRMD,file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles_Nonreal.rda")) +} + +NRMD <- NRMD[,t:="??"] + +library(writexl) +write_xlsx(Dcile[Region=="Urban",],"E:/decile_exp_96-98U.xlsx") +write_xlsx(Dcile[Region=="Rural",],"E:/decile_exp_96-98R.xlsx") +write_xlsx(NRMD,"E:/NRMD.xlsx") diff --git a/R/Decile/decile_real.R b/R/Decile/decile_real.R new file mode 100644 index 00000000..bd0c4ce1 --- /dev/null +++ b/R/Decile/decile_real.R @@ -0,0 +1,153 @@ + +Decile_MD <- MD [,.(HHID,Total_Exp_Month_Per_nondurable,Size,Weight)] +Decile_MD <- Decile_MD[order(Total_Exp_Month_Per_nondurable)] +Decile_MD <- Decile_MD[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] +Decile_MD <- Decile_MD[,Decile_non_real:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] +#MD <- merge(MD,Decile_MD[,c("HHID","Decile_non_real")],by="HHID") +save(Decile_MD,file=paste0(Settings$HEISProcessedPath,"Y",year,"Decile_non_real.rda")) + +#164-Step 4-FindInitialPoor.R +# +# Copyright © 2020:Majid Einian & Arin Shahbazian +# Licence: GPL-3 + +rm(list=ls()) + +starttime <- proc.time() +cat("\n\n================ Nominal to Real =====================================\n") + +library(yaml) +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +#library(ggplot2) +#library(compare) +source("142-Calculate_OwnedDurableItemsDepreciation_FunctionDef.R") +# Function Defs --------------------------------------------------------------------------------- +CalcTornqvistIndex <- function(DataTable){ + + X <- DataTable[,.(N=.N,wi1=weighted.mean(FoodExpenditure/Total_Exp_Month,Weight,na.rm = TRUE), + wi2=weighted.mean(House_Exp/Total_Exp_Month,Weight,na.rm = TRUE), + pi1=weighted.mean(Bundle_Value,Weight,na.rm = TRUE), + pi2=weighted.mean(MeterPrice,Weight,na.rm = TRUE)),by=.(Region,NewArea_Name)] + + X[,wi:=wi1+wi2] + X[,wi1:=wi1/wi] + X[,wi2:=wi2/wi] + XTeh<-X[NewArea_Name=="Sh_Tehran"] + wk1<-XTeh$wi1 # k == Sh_Tehran + wk2<-XTeh$wi2 + pk1<-XTeh$pi1 + pk2<-XTeh$pi2 + + X[,SimpleIndex:= .5 * pi1/pk1 + .5 * pi2/pk2] + X[,AnotherIndex:= wi1 * pi1/pk1 + wi2 * pi2/pk2] + + X[,TornqvistIndex:= exp( (wk1+wi1)/2 * log(pi1/pk1) + (wk2+wi2)/2 * log(pi2/pk2) ) ] + + return(X[,.(Region,NewArea_Name,PriceIndex=TornqvistIndex)]) +} + + +DoDeciling <- function(DataTable,PriceIndexDT){ + + if("PriceIndex" %in% names(DataTable)){ + DataTable <- DataTable[,PriceIndex:=NULL] + } + DataTable <- merge(DataTable,PriceIndexDT,by=c("Region","NewArea_Name")) + DataTable <- DataTable[,Total_Exp_Month_Per_nondurable_Real:=Total_Exp_Month_Per_nondurable/PriceIndex] + DataTable <- DataTable[order(Total_Exp_Month_Per_nondurable_Real)] # I removed Region from ordering, deciling is not divided into rural/urban (M.E. 5/11/2020) + DataTable <- DataTable[,crw:=cumsum(Weight*Size)/sum(Weight*Size)] # Cumulative Relative Weight + #Calculate deciles by weights + DataTable <- DataTable[,Decile:=cut(crw,breaks = seq(0,1,.1),labels = 1:10)] + DataTable <- DataTable[,Percentile:=cut(crw,breaks=seq(0,1,.01),labels=1:100)] + return(DataTable) +} + +UpdateForDurableDepr <- function(DataTable,ODIDep){ + DataTable[,OwnedDurableItemsDepreciation:=NULL] + DataTable <- merge(DataTable,ODIDep) + + for (col in Settings$w) + DataTable[is.na(get(col)), (col) := 0] + + DataTable[, Total_Exp_Month := Reduce(`+`, .SD), .SDcols=Settings$w] + DataTable[, Total_Exp_Month_nondurable := Reduce(`+`, .SD), .SDcols=Settings$nw] + + DataTable[,Total_Exp_Month_Per:=Total_Exp_Month/EqSizeOECD] + DataTable[,Total_Exp_Month_Per_nondurable:=Total_Exp_Month_nondurable/EqSizeOECD] +} + +DurableItems <- data.table(read_excel(Settings$MetaDataFilePath, + sheet=Settings$MDS_DurableItemsDepr)) +year<- 98 +for(year in (Settings$startyear:Settings$endyear)){ + + cat(paste0("\n------------------------------\nYear:",year,"\n")) + + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"DurableData_Detail.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"OwnsDurableItems.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"Merged4CBN3.rda")) + + SMD <- MD[,.(HHID,Region, + House_Exp,FoodExpenditure,Total_Exp_Month, + NewArea,NewArea_Name,Total_Exp_Month_Per_nondurable,TOriginalFoodExpenditure_Per, + TFoodKCaloriesHH_Per,Calorie_Need_WorldBank,Calorie_Need_NutritionInstitute, + Weight,MeterPrice,Size,EqSizeOECD + ,OriginalFoodExpenditure,FoodOtherExpenditure, Cigar_Exp, Cloth_Exp, + Amusement_Exp, Communication_Exp, + Energy_Exp, Furniture_Exp, Hotel_Exp,Restaurant_Exp, Hygiene_Exp, + Transportation_Exp, Other_Exp + ,Add_to_NonDurable,Medical_Exp, + Durable_NoDep,Durable_Emergency,OwnedDurableItemsDepreciation)] + + + #Choose one of these + SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Calorie_Need_NutritionInstitute/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_WorldBank/TFoodKCaloriesHH_Per] + #SMD[,Bundle_Value:=TOriginalFoodExpenditure_Per*Settings$KCaloryNeed_Adult_NutritionInstitute/TFoodKCaloriesHH_Per] + + + SMD <- SMD[Bundle_Value<=5000000 | TFoodKCaloriesHH_Per>=300] #arbitrary measures, TODO: check in diff years + + # S1<-SMD[,.(HHID,Region,NewArea_Name,TFoodKCaloriesHH_Per,Bundle_Value)] + + + PriceDT <- CalcTornqvistIndex(SMD) + + SMD <- DoDeciling(SMD,PriceDT) + + OwnedDurableItemsDepreciation <- + Calculate_OwnedDurableItemsDepreciation( + DurableData_ExpDetail = DurableData_Detail, + DurableItems_OwningDetail = OwnsDurableItems, + by = c("Item","Decile"), + Decile = SMD[,.(HHID,Decile)], + DurableItems = DurableItems) + + SMD <- UpdateForDurableDepr(SMD,OwnedDurableItemsDepreciation) + + SMD <- SMD[,IPboPct:=ifelse(Percentile %in% Settings$InitialPoorPercentile,1,0)] + # IPboPct : InitialPoorBasedOnRealIterativePercentile + # IPboPctLI: InitialPoorBasedOnRealIterativePercentileLastIteration + + SMD[,IPboPctLI:=1] + + setnames(SMD,"IPboPct","InitialPoor") # or maybe InitialPoorBasedOnRealIterativePercentile ! + + SMD <- SMD[,setdiff(names(SMD),c("First25","IPboPctLI")),with=FALSE] + + mdset <- setdiff(names(MD),names(SMD)) + MD <- merge(MD[,c("HHID",mdset),with=FALSE],SMD,by="HHID") + Decile_R <- MD[,.(HHID,Percentile,Decile,Region)] + save(Decile_R,file=paste0(Settings$HEISProcessedPath,"Y",year,"Deciles_real.rda")) + cat(MD[,sum(Weight*Size)]) + +} + +endtime <- proc.time() +cat("\n\n============================\nIt took ") +cat((endtime-starttime)["elapsed"]) +cat(" seconds") diff --git a/R/Decile/graph_distribution of Non_real.R b/R/Decile/graph_distribution of Non_real.R new file mode 100644 index 00000000..5cabbdbb --- /dev/null +++ b/R/Decile/graph_distribution of Non_real.R @@ -0,0 +1,172 @@ +rm(list=ls()) + +library(yaml) +library(data.table) +library(readxl) +library(rworldmap) +library(rgdal) +Settings <- yaml.load_file("Settings.yaml") + +GeP_kham <- data.table(read_excel("~/GitHub/IRHEIS/IranProvinceMap/Data/GeoData.xlsx","Province")) # Data to be plotted, see the excell file + + +GeP_kar2 <- data.table(read_excel("e:/dahak/decile_pro_non_real_inProvince.xlsx")) # Data to be plotted, see the excell file + + +GeP_Final <- merge(GeP_kham[,.(NameEn2,ProvinceName)],GeP_kar2[,.(ProvinceName,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)], by="ProvinceName",all=TRUE) +GeP_Final <- GeP_Final[,p_poor:=p1+p2+p3] +GeP_Final <- GeP_Final[,p_huge:=max(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10),by="ProvinceName"] +GeP_Final <- GeP_Final[,p_max:=ifelse(p_huge==p1,1, + ifelse(p_huge==p2,2, + ifelse(p_huge==p3,3, + ifelse(p_huge==p4,4, + ifelse(p_huge==p5,5, + ifelse(p_huge==p6,6, + ifelse(p_huge==p7,7, + ifelse(p_huge==p8,8, + ifelse(p_huge==p9,9,10)))))))))] + + +GeP<- GeP_Final + + + + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(GeP, # Joining the data to map + nameMap="ProvMap", + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) + +jpeg("e:dahak/11.jpg", width = 500) +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p_poor", #select variable + colourPalette = "heat", + mapTitle = paste0("3D national poors in province"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() +jpeg("e:dahak/12.jpg", width = 500) + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p10", #select variable + colourPalette = "heat", + mapTitle = paste0("1D national rich in province"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() + + +jpeg("e:dahak/13.jpg", width = 500) + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p_max", #select variable + colourPalette = "heat", + mapTitle = paste0("huge D in province"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() + + +GeP_kar1 <- data.table(read_excel("e:/dahak/decile_pro_non_real_inDecile.xlsx")) # Data to be plotted, see the excell file + + +GeP_Final <- merge(GeP_kham[,.(NameEn2,ProvinceName)],GeP_kar1[,.(ProvinceName,p,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)], by="ProvinceName",all=TRUE) +GeP_Final <- GeP_Final[,p_poor:=p1+p2+p3] + +GeP<- GeP_Final + + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(GeP, # Joining the data to map + nameMap="ProvMap", + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) + +jpeg("e:dahak/21.jpg", width = 500) +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p_poor", #select variable + colourPalette = "heat", + mapTitle = paste0("3D national poors in decile"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() +jpeg("e:dahak/22.jpg", width = 500) + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p10", #select variable + colourPalette = "heat", + mapTitle = paste0("1D national rich in decile"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() \ No newline at end of file diff --git a/R/Decile/graph_distribution of real.R b/R/Decile/graph_distribution of real.R new file mode 100644 index 00000000..7ed54eda --- /dev/null +++ b/R/Decile/graph_distribution of real.R @@ -0,0 +1,169 @@ +rm(list=ls()) + +library(yaml) +library(data.table) +library(readxl) +library(rworldmap) +library(rgdal) +Settings <- yaml.load_file("Settings.yaml") + +GeP_kham <- data.table(read_excel("~/GitHub/IRHEIS/IranProvinceMap/Data/GeoData.xlsx","Province")) # Data to be plotted, see the excell file + + +GeP_kar2 <- data.table(read_excel("e:/dahak/decile_pro_real_inProvince.xlsx")) # Data to be plotted, see the excell file + + +GeP_Final <- merge(GeP_kham[,.(NameEn2,ProvinceName)],GeP_kar2[,.(ProvinceName,p10,p1,p2,p3,p4,p5,p6,p7,p8,p9)], by="ProvinceName",all=TRUE) +GeP_Final <- GeP_Final[,p_poor:=p1+p2+p3] +GeP_Final <- GeP_Final[,p_huge:=max(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10),by="ProvinceName"] +GeP_Final <- GeP_Final[,p_max:=ifelse(p_huge==p1,1, + ifelse(p_huge==p2,2, + ifelse(p_huge==p3,3, + ifelse(p_huge==p4,4, + ifelse(p_huge==p5,5, + ifelse(p_huge==p6,6, + ifelse(p_huge==p7,7, + ifelse(p_huge==p8,8, + ifelse(p_huge==p9,9,10)))))))))] +GeP<- GeP_Final + + + + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(GeP, # Joining the data to map + nameMap="ProvMap", + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) + +jpeg("e:dahak/211.jpg", width = 500) +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p_poor", #select variable + colourPalette = "heat", + mapTitle = paste0("3D national poors in province"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() +jpeg("e:dahak/212.jpg", width = 500) + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p10", #select variable + colourPalette = "heat", + mapTitle = paste0("1D national rich in province"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() +jpeg("e:dahak/213.jpg", width = 500) + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p_max", #select variable + colourPalette = "heat", + mapTitle = paste0("huge D national rich in province"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() +GeP_kar1 <- data.table(read_excel("e:/dahak/decile_pro_real_inDecile.xlsx")) # Data to be plotted, see the excell file + + +GeP_Final <- merge(GeP_kham[,.(NameEn2,ProvinceName)],GeP_kar1[,.(ProvinceName,p,p10,p1,p2,p3)], by="ProvinceName",all=TRUE) +GeP_Final <- GeP_Final[,p_poor:=p1+p2+p3] + + +GeP<- GeP_Final + + + + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(GeP, # Joining the data to map + nameMap="ProvMap", + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) + +jpeg("e:dahak/221.jpg", width = 500) +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p_poor", #select variable + colourPalette = "heat", + mapTitle = paste0("3D national poors in decile"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() +jpeg("e:dahak/222.jpg", width = 500) + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + + +mapParams <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "p10", #select variable + colourPalette = "heat", + mapTitle = paste0("1D national rich in decile"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapParams + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = .5 + , horizontal = TRUE)) +dev.off() \ No newline at end of file diff --git a/R/HouseHoldSurvey.Rproj b/R/HouseHoldSurvey.Rproj new file mode 100644 index 00000000..5183317f --- /dev/null +++ b/R/HouseHoldSurvey.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: knitr +LaTeX: XeLaTeX diff --git a/R/Map.R b/R/Map.R new file mode 100644 index 00000000..839c5581 --- /dev/null +++ b/R/Map.R @@ -0,0 +1,59 @@ +#Engle's Map +# +# Copyright © 2019:Majid Einian & Arin Shahbazian +# Licence: GPL-3 +rm(list=ls()) + +library(data.table) +library(readxl) +library(rworldmap) +library(rgdal) +library("viridis") + +Engle <- data.table(read_excel("Engle.xlsx","Province")) # Data to be plotted, see the excell file + +tfs <- paste0("+proj=lcc +lat_1=30 +lat_2=36 +lat_0=24 +lon_0=54 ", + "+x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ", + "+ellps=WGS84 +towgs84=0,0,0") # Transformation to make all shapefiles in one coordinate system + +o <- capture.output(Seas <- readOGR("../IranProvinceMap/Shapefiles/1385", + layer = "Sea")) # Maps of Caspian Sea, Persian Gulf, & Oman Sea +Seas <- spTransform(Seas,CRS(tfs)) + +o <- capture.output(Lakes <- readOGR("../IranProvinceMap/Shapefiles/1385", # Maps of Lakes + layer = "Lake")) +Lakes <- spTransform(Lakes,CRS(tfs)) + +o <- capture.output(ProvMap <- readOGR("../IranProvinceMap/Shapefiles/OSM", # Maps of provinces based on latest admin. areas. + layer = "Iran_AL4")) # extracted from openstreetmaps.org +ProvMap <- spTransform(ProvMap,CRS(tfs)) + +MapData <- rworldmap::joinData2Map(Engle,nameMap="ProvMap", # Joining the data to map + nameJoinIDMap="ENNAME", # province name in shapefile + nameJoinColumnData="NameEn2", # province name in data excel + verbose = TRUE) +MapData2<-MapData + +plot(Seas,col="lightblue", border="lightblue") # plot seas +plot(Lakes[c(15,25),],add=TRUE,col="lightblue", border="lightblue") # plot just Urmia and Qom lakes + +#Urban Areas +mapUrban <- rworldmap::mapPolys(MapData, add = TRUE, nameColumnToPlot = "MPI", + colourPalette = "heat",numCats = 30, + #catMethod ="pretty", + #catMethod ="fixedWidth", + #catMethod =c(0.04,0.06,0.08,0.1,0.12,0.14,0.16,0.18,0.2,0.22), #A + #catMethod =c(0.2,0.23,0.26,0.29,0.32,0.36,0.39,0.42,0.45,0.48), #AB + catMethod =c(0.04,0.06,0.08,0.1,0.12,0.14,0.16,0.19,0.24), #DE + #white2Black black2White palette heat topo + #terrain rainbow negpos8 negpos9 + mapTitle = paste0("Engle Rate in Urban Areas"), + addLegend = FALSE) # Plot data +do.call( addMapLegend, c( mapUrban + , legendLabels = "all" # add legend + , digits = 2 + , legendWidth = 0.7 + , legendShrink = 0.7 + , horizontal = TRUE)) + + diff --git a/R/Poverty indexes/Behdasht.R b/R/Poverty indexes/Behdasht.R new file mode 100644 index 00000000..ea2a2d19 --- /dev/null +++ b/R/Poverty indexes/Behdasht.R @@ -0,0 +1,92 @@ +#Behdasht + +#Zahra Shahidi +#2021 +rm(list=ls()) + +cat("\n\n================ Behdasht Index =====================================\n") + +source("168-Step8-PovertyStats.R") + + + +Settings <- yaml.load_file("Settings.yaml") + +library(readxl) +library(data.table) +library(ggplot2) +library(stats) +library(spatstat) +library(writexl) +startTime <- proc.time() + +Geoo <- as.data.table(read_excel("C:/HEIS/DataResults/Geo.xlsx", + sheet = "Sheet1")) +Geo_O<-as.data.table(read_excel("C:/HEIS/DataResults/Geo.xlsx", + sheet = "Sheet2")) +for(year in (Settings$startyear:Settings$endyear)){ + cat(paste0("\nYear:",year,"\t")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPoor.rda")) + load(file=paste0(Settings$HEISProcessedPath,"Y",year,"FinalPovertyLine.rda")) + + MD<-MD[,Behdasht:=Medical_Exp+Hygiene_Exp+Durable_Emergency] + MD<-MD[,TenPercent:=ifelse(Behdasht>0.1*Total_Exp_Month,1,0)] + MD<-MD[,TwentyfivePercent:=ifelse(Behdasht>0.25*Total_Exp_Month,1,0)] + MD<-MD[,Kamarshekan:=ifelse(Behdasht>0.4*(Total_Exp_Month-OriginalFoodExpenditure),1,0)] + FinalCountryResults<-FinalCountryResults[Year==year] + MD<-MD[,cluster3:=as.numeric(cluster3)] + FinalClusterResults<-as.data.table(FinalClusterResults[,cluster3:=as.numeric(cluster3)]) + FinalClusterResults1<-FinalClusterResults[Year==year] + MD<-merge(MD,FinalClusterResults1[,.(cluster3,PovertyLine_Final)],by=c("cluster3"),all.x = TRUE) + MD[,BehdashtPoor:=ifelse((Total_Exp_Month_Per>PovertyLine_Final) & (Total_Exp_Month_Per-(Medical_Exp/EqSizeOECD)-(Hygiene_Exp/EqSizeOECD)0.3,1,0)] +MD<-MD[,Kids:=ifelse(UN18All>0,1,0)] +MD<-MD[,Room_Per:=room/Size] + +MD<-MD[,ZanSarparast:=ifelse(HSex=="Female",1,0)] +MD<-MD[,DarayeKoodak:=ifelse(UN18All>0,1,0)] +MD<-MD[,Foghara:=FinalPoor] +#Select The desirable group--->>> +MD<-MD[,Group:=ZanSarparast] +#-------------------Country Resaults------------- +Features<-MD[,.(ZagheNeshin=weighted.mean(Zaghe,Weight), + DoMahrumiat=weighted.mean(Namonaseb_Maskan,Weight), + MaskaneNamonaseb=weighted.mean(N_Maskan,Weight), + MaskaneEstijari=weighted.mean(Rental_House,Weight), + Masaleh=weighted.mean(Other_Skeleton,Weight*Size), + AbAshamidani=weighted.mean(Pipewater,Weight*Size), + FazayeKafi=weighted.mean(Space,Weight*Size), + Hammam=weighted.mean(Bathroom,Weight*Size))] +#-------------------Region Resaults-------------- +Features_Region<-MD[,.(ZagheNeshin=weighted.mean(Zaghe,Weight), + DoMahrumiat=weighted.mean(Namonaseb_Maskan,Weight), + MaskaneNamonaseb=weighted.mean(N_Maskan,Weight), + MaskaneEstijari=weighted.mean(Rental_House,Weight), + Masaleh=weighted.mean(Other_Skeleton,Weight*Size), + AbAshamidani=weighted.mean(Pipewater,Weight*Size), + FazayeKafi=weighted.mean(Space,Weight*Size), + Hammam=weighted.mean(Bathroom,Weight*Size)),by=c("Region")] +#-------------------Group Resaults------------ +Features_Group<-MD[,.(ZagheNeshin=weighted.mean(Zaghe,Weight), + DoMahrumiat=weighted.mean(Namonaseb_Maskan,Weight), + MaskaneNamonaseb=weighted.mean(N_Maskan,Weight), + MaskaneEstijari=weighted.mean(Rental_House,Weight), + Masaleh=weighted.mean(Other_Skeleton,Weight*Size), + AbAshamidani=weighted.mean(Pipewater,Weight*Size), + FazayeKafi=weighted.mean(Space,Weight*Size), + Hammam=weighted.mean(Bathroom,Weight*Size)),by=c("Group")] +#-------------------Group Region Resaults------------ +Features_Group_Region<-MD[,.(ZagheNeshin=weighted.mean(Zaghe,Weight), + DoMahrumiat=weighted.mean(Namonaseb_Maskan,Weight), + MaskaneNamonaseb=weighted.mean(N_Maskan,Weight), + MaskaneEstijari=weighted.mean(Rental_House,Weight), + Masaleh=weighted.mean(Other_Skeleton,Weight*Size), + AbAshamidani=weighted.mean(Pipewater,Weight*Size), + FazayeKafi=weighted.mean(Space,Weight*Size), + Hammam=weighted.mean(Bathroom,Weight*Size)),by=c("Group","Region")] +#---------------Build TimeSeries----------------- +Features<-Features[,Year:=year] +if (year==Settings$startyear){ + Shakhes<-Features +}else{ + Shakhes<-rbind(Shakhes,Features) +} + +Features_Region<-Features_Region[,Year:=year] +if (year==Settings$startyear){ + Shakhes_Region<-Features_Region +}else{ + Shakhes_Region<-rbind(Shakhes_Region,Features_Region) +} + +Features_Group<-Features_Group[,Year:=year] +if (year==Settings$startyear){ + Shakhes_Group<-Features_Group +}else{ + Shakhes_Group<-rbind(Shakhes_Group,Features_Group) +} + +Features_Group_Region<-Features_Group_Region[,Year:=year] +if (year==Settings$startyear){ + Shakhes_Group_Region<-Features_Group_Region +}else{ + Shakhes_Group_Region<-rbind(Shakhes_Group_Region,Features_Group_Region) +} + +} + +write_xlsx(Shakhes,path=paste0(Settings$HEISResultsPath,"Shakhes_Maskan.xlsx")) +write_xlsx(Shakhes_Region,path=paste0(Settings$HEISResultsPath,"Shakhes_Maskan_Region.xlsx")) +write_xlsx(Shakhes_Group,path=paste0(Settings$HEISResultsPath,"Shakhes_Maskan_Group.xlsx")) +write_xlsx(Shakhes_Group_Region,path=paste0(Settings$HEISResultsPath,"Shakhes_Maskan_Group_Region.xlsx")) diff --git a/R/Province.csv b/R/Province.csv new file mode 100644 index 00000000..59d5ee52 --- /dev/null +++ b/R/Province.csv @@ -0,0 +1,281 @@ +"","Year","HLiterate","Knowledge","tenure","area","room","car","oven","frez_refrig","electricity","bathroom","ego","pipewater","cookfuel","heatfuel","hotwater","G0451","G0452","G0453","G044","Energy_Share","Subsidy","Food_Share","Low_Calorie","Low_Protein","FoodKCaloriesHH_Per","No_Insurance","Area_Per","skeleton","House_High_Share","Tech_low","Equip_low","ProvinceCode" +"1",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA +"2",90,0.254998404072426,0.0657549210218781,0.733565813521495,31.6536718738631,1.12098221225296,0.652692480213078,0.0307852473175774,0.996196578108873,0,0.0333960611589356,0.715751915325726,0.00408343515631531,0.00407512026095502,0.0973542114202782,0.099512185726181,0.0182007063201739,0.0322106651134162,0.00379894122406277,0.0113211240667769,0.0655314367244298,0.143126075064839,0.290758684059916,0.362512024910644,0.218199946599708,3132.96255474484,0.257472611450904,0.14347153246151,0.0847564551872548,0.0563529597615894,0.225876800759019,0.0277489199171526,0 +"3",90,0.24715446268882,0.0528628642176889,0.768900864189417,26.5347175685371,1.17737943183711,0.73836217876622,0.0270537405176547,0.984765500124798,0.00261969455887506,0.051703111870557,0.55518687807672,0.00965414926742173,0.0107132161993759,0.210306844592885,0.21052508484318,0.017349111269754,0.0280070928753373,0.0113844594807921,0.00724511087926853,0.063985774505152,0.162170809292553,0.319704376395938,0.397646621850307,0.175452952386734,2798.96756343074,0.184453714603182,0.203902381006931,0.0766019849794028,0.0463307578507954,0.218523153233852,0.0432842750847443,1 +"4",90,0.242698792754486,0.0538522548202433,0.846515289788316,31.7926823284349,1.28398608758416,0.712433501761029,0.0149191785444497,0.99217463282607,0,0.0550926778083748,1,0.043079505084631,0.000609142240187234,0.142547792271507,0.142081172190008,0.0179674559278302,0.0379147666503673,0.0150171435093309,0.00957337445421542,0.0804727405417439,0.15881387211394,0.29520641619804,0.384700573718934,0.0986781215302803,2736.88195632616,0.206524034284682,0.124495362210615,0.0636734570146265,0.0390061649712456,0.188568515369692,0.0258025271650089,2 +"5",90,0.282836121506565,0.151273325776631,0.816999965531811,33.4965350130011,1.06855090042393,0.692385066177207,0.0399834569173505,0.983342788254949,0,0.0597924811683565,0.629776247931397,0.013482691858725,0.0050798661479319,0.0940850136608961,0.0914729176193895,0.0195429236788592,0.0587931826693588,0.00672335327062888,0.0155377402504211,0.100597199869268,0.175465779703226,0.306026309936339,0.316728124571828,0.195147615408832,2920.97571623646,0.253470663819661,0.208897814381763,0.047703513813804,0.0384612678329631,0.189688355221278,0.0589327562998554,3 +"6",90,0.34504324226793,0.15638136402438,0.812470938881801,28.2750730847383,1.00244545066175,0.658832560887239,0.0725736189422175,0.989324437185097,0.00204775936844227,0.0446146418030416,0.62545435493406,0.0163247606677685,0.00428655223065502,0.285672381267596,0.284360420964093,0.0146504802626852,0.0340150012279187,0.0163963695247505,0.0130915293321889,0.0781533803475433,0.163646395686887,0.313402527452269,0.19046586670474,0.102427728820314,3417.71453178295,0.275164702570055,0.236943237900248,0.0590663138104263,0.0189472892751085,0.276690737549115,0.0788092969640531,4 +"7",90,0.31617498442359,0.0781459888094645,0.715146863869728,27.0016894895846,1.01386904560932,0.73942777159928,0.042806507479286,0.989106662837039,0,0.0636596536778254,0.284055546319263,0.0151063854668811,0.000506138751138013,0.275577884709434,0.273805474017626,0.0125404674983263,0.020884837082094,0.011152126685742,0.010094445552285,0.0546718768184474,0.169696200730606,0.307481826302773,0.173052773145393,0.0829517064440694,3432.35452250072,0.189660006494845,0.248916316040151,0.0558823441281796,0.104512201304005,0.221926044653255,0.0636915384631936,5 +"8",90,0.267281158606797,0.186359744812111,0.694676243816144,25.4101560633286,1.0111097211838,0.703402654628558,0.028879106923237,0.993014295052259,0,0.0175508862342214,0.435867206162624,0.00446558904101925,0.00456888240030455,0.303843630411728,0.293122733326467,0.0204041932170534,0.0101763347359132,0.00173594405977245,0.0157891236261994,0.0481055956389385,0.185565260323234,0.377431275654322,0.171580366813928,0.0915754466853671,3170.34109937802,0.335125275715546,0.258011453930086,0.0480034030675121,0.0590814173261054,0.381176842951817,0.0397923090079167,6 +"9",90,0.245285761929986,0.0925610355785849,0.772631579228521,38.8013889924169,1.32472657172815,0.642474814023386,0.0124400745293633,0.98985816365286,0.00443593316826736,0.0480690082859188,0.940117595418195,0.0110548969051107,0.00423888697077204,0.263545654170496,0.264814272321631,0.0175435740860509,0.0173785144130384,0.00570733632566572,0.010039953866574,0.0506693786913291,0.160165030236807,0.285830582268381,0.281478414372586,0.199151374609203,3176.2260506996,0.155875496970726,0.126438204870475,0.0493579845410264,0.0668087376895499,0.206684796952024,0.0392835702280289,7 +"10",90,0.305584260912715,0.0896449964107307,0.760328395291891,26.3217360129144,1.03705439278915,0.569151825382134,0.0312357137196024,0.977324881732587,0.0015184381847956,0.236843802796182,1,0.0613114311410624,0.0039233980584686,0.526870028005374,0.53138797564761,0.0181600450578624,0.0141644675977307,0.00793193485393923,0.0102158715447103,0.0504723190542426,0.23471244141252,0.33007666223084,0.397229913770142,0.256543046655102,2705.131146867,0.131615290594252,0.348498993899195,0.127290732312534,0.0434359695451612,0.44427514819515,0.0654408568626612,8 +"11",90,0.270814847603704,0.171948869449823,0.721821883327008,29.6900661174487,1.08810692081539,0.695415339971543,0.0206569867257012,0.988827595477558,0.000839963603747625,0.0983049143207038,0.868536293485835,0.00877873658393401,0.00359317837797311,0.165286788101818,0.16463289873862,0.0135619028499272,0.0174780098391341,0.0064788210135566,0.00708720670975265,0.0446059404123706,0.192740546646008,0.353202743303089,0.273191742095856,0.142825432408287,2990.32169705984,0.288264388356287,0.208110014540667,0.102525280783155,0.101150798998227,0.276388250758728,0.0415501675701368,9 +"12",90,0.21420241922294,0.0355898035434488,0.738826145957293,41.0712658501102,1.34965284801612,0.553928145434628,0.0122089191948161,0.995500952591488,0,0.0187151857546407,0.496142516985742,0.00251526257469036,0.000790726724370619,0.0351187029875071,0.0353112574564138,0.0151920235978647,0.0249786742237354,0.00127731339540812,0.0112997307042179,0.0527477419212262,0.11708869781044,0.264958728109911,0.42868032043905,0.298122552179386,2725.46668178597,0.248159193782172,0.111014107842551,0.187893802691849,0.0620484632374045,0.172319045648612,0.0177861928500254,10 +"13",90,0.450981205535566,0.28827469801118,0.731146720708826,19.8910004105932,0.827628443279029,0.837779813974046,0.0459221552371004,0.960677617966619,0.00959294233055577,0.236810261129267,0.998630029129021,0.200908514568458,0.0102787754868407,1,1,0.022303532171621,0.0137546634016313,0.013268361538722,0.00866036598495868,0.057986923096933,0.446685874115597,0.468302889825969,0.434831136238617,0.403192049181617,2579.67332322981,0.229133934331577,0.50815768895609,0.277850826124895,0.0445665712994937,0.746573823402459,0.180171670301902,11 +"14",90,0.289628521309294,0.172271596946228,0.757792367111011,23.8102417188534,1.10798092221648,0.784857472238816,0.0304037332853025,0.992094902027742,0,0.0417580212452319,0.320420951292715,0.0182424228955504,0.00633867623982579,0.215933917262231,0.217957555703431,0.0176379804523977,0.0295120622483417,0.00944762170218663,0.0120768536959211,0.0686745180988471,0.189997121135694,0.366139234681682,0.132353536302083,0.039973614310879,3414.6197783746,0.337394396079105,0.311986566619546,0.105738386985996,0.0624209704152786,0.216820748101008,0.0475242882873239,12 +"15",90,0.317164847950388,0.154163798733833,0.784128160727949,31.9335846172173,1.16400166425941,0.739307190716846,0.0220774346196766,0.992589189666651,0,0.056767185110932,0.615676845828193,0.00914757757907271,0.0044082346933942,0.101058213453001,0.103126526144706,0.0169506744534959,0.0302647873768754,0.00367253539047429,0.0115571541089221,0.0624451513297676,0.224016836976739,0.311772323973873,0.394018552902956,0.244185200297396,2651.32232813115,0.209627960720829,0.15999095876577,0.0841385722867283,0.0622348863840577,0.252065117162726,0.0288809127261759,13 +"16",90,0.317314534969633,0.0648031828374352,0.787078480206695,37.5420984286652,1.10275957744443,0.653419435919442,0.0284009916664749,0.978102255672809,0.00783116912100597,0.076232713098372,0.637094709192002,0.0125979677164009,0.0213632357526375,0.104741762299987,0.102452844422068,0.0146809189487369,0.0348773643679014,0.00705953510347504,0.0122054183581986,0.0688232367783119,0.162416522321455,0.334570241428578,0.196963958272009,0.1355417179653,3518.01297791015,0.123130787929617,0.107993204701606,0.12060106939873,0.0159089358743948,0.241698195544555,0.0683881041262432,14 +"17",90,0.344986571133096,0.167587668711203,0.767436675757262,26.7435430606781,0.900425192693294,0.72614006292047,0.0246204730932815,0.991433690147725,0,0.146295162380247,0.678051882270183,0.0760283729837255,0.00201679403818055,0.299711217328777,0.299307983072551,0.0174695057806386,0.0271736994374771,0.0089485959582593,0.0136651451222883,0.0672569462986633,0.179122625540973,0.314990886749263,0.286799623496919,0.149077608548383,3159.19439259593,0.255756082646873,0.264146661090293,0.0168701227393632,0.0334587835718128,0.376556131406633,0.03811437153832,15 +"18",90,0.382912492265941,0.11253500847367,0.863460878050849,28.8423984082354,0.941379977185468,0.663757495097208,0.0253365742857454,0.992277283558495,0.000895183470312259,0.0461126525229456,0.900266319255767,0.000663373815942363,0.00132674763188473,0.592347713809177,0.591452530338865,0.0129638082376388,0.015071787597343,0.0113509507551324,0.00971112208750959,0.0490976686776238,0.16288488977969,0.349926210483509,0.138112543275421,0.0585844597210818,3545.55550706029,0.143586424268626,0.15800190732778,0.0226205858510375,0.00752267989777927,0.183634085976286,0.0392793985411153,16 +"19",90,0.342013408333187,0.0910475989143858,0.801018830843823,25.9947580854847,0.952598123008768,0.724926649727454,0.0732880431408036,0.964180238165059,0.00980319868713806,0.197791300041389,0.964244318340566,0.0423288887166259,0.041799889675702,0.366583681765183,0.363061069725637,0.00909437695997284,0.0218690519184507,0.0142024587320949,0.00498461557304021,0.0501505031835587,0.219555397781068,0.371574623263769,0.407064171220151,0.255899077194205,2621.35276641072,0.160693389496817,0.230984478115414,0.149601540472283,0.0211393341252159,0.380863780753808,0.11853534024823,17 +"20",90,0.224240128861308,0.0863458116393205,0.788247963234361,27.5318021371346,0.998599237380424,0.577766190556209,0.017017630012833,0.987202110521479,0,0.00282095829319065,1,0.00956448409068316,0.00250220922746024,0.937704102063803,0.944537661204491,0.0342608030321953,0.00799098855119194,0.00214617143221102,0.0116732534407772,0.0560712164563754,0.198860597276907,0.308522201205774,0.556474808517814,0.279143124960297,2226.71054928257,0.350859809917261,0.158088554982151,0.00669916452757124,0.0522022684675064,0.16124226218641,0.0268047947984645,18 +"21",90,0.286586146810405,0.199580557508183,0.810932700675487,30.347540286117,0.97858694323458,0.640183449182391,0.0310470249453924,0.994413959437187,0,0.0260222773419938,1,0,0.00394432367182579,0.291389121005986,0.292288937644711,0.0169395469444563,0.0352852971963304,0.016397018411051,0.0162812753002822,0.0849031378521198,0.146639005074052,0.346887523020018,0.121785496091177,0.0661432721534447,3862.0237504789,0.262345461563779,0.198634783292528,0.207209561789391,0.0261412951772621,0.213657186469229,0.0458931298955733,19 +"22",90,0.247312426188694,0.06547298089116,0.7285463072946,38.5153224290199,1.46818804595095,0.64692682911807,0.00695861326184309,0.993188905398835,0,0.0433217043418162,1,0.0017267406316419,0.0011511604210946,0.0933897879270728,0.0933897879270728,0.0276479606070191,0.0477899180518277,0.00710039154700962,0.0171051512392102,0.0996434214450666,0.169524904866472,0.270445637558587,0.373186586796041,0.26851513259314,2937.39193707046,0.224582092578,0.0984681374428401,0.0958660642220218,0.120596465560317,0.269957776702717,0.0256916214132494,20 +"23",90,0.211561867378345,0.121621485525398,0.810289247919805,42.6552621735749,1.1620312055409,0.425248687104145,0.0194840039584894,0.994207422553213,0.00132416460885905,0.0312512007708657,1,0.00416356685458654,0.00511385080682128,0.219676663500558,0.220972811161619,0.0238254194707865,0.0234653055114772,0.0035486421327905,0.0138995296889134,0.0647388968039676,0.186634751779387,0.293793050892006,0.592037070823425,0.318240022761483,2245.53267425052,0.188959668882721,0.0842423542443003,0.139918664177493,0.0615236051784725,0.200536598770138,0.0396595654754723,21 +"24",90,0.314893502278456,0.17267396783872,0.760603380896855,22.2625232102157,0.960967543509667,0.700807107202262,0.045804986419089,0.973040920056109,0.00204695224448481,0.0439562007730382,0.780751657021596,0.0820924346259415,0.0130886800727614,0.995113902840102,0.995113902840102,0.0223433277271783,0.00814341708511602,0.000964986785246401,0.014227050491784,0.0456787820893248,0.208772843590008,0.419484185509667,0.308756358139418,0.148770391789076,2785.45386302003,0.205089358875986,0.373530691002198,0.0600757185338423,0.0396520650518961,0.488751278494837,0.0789364640542618,22 +"25",90,0.145474394306794,0.0668944485119259,0.578314083228757,27.6053250946309,1.02463325297579,0.581852937089678,0.0139428029147846,0.991374899463614,0,0.0124121438898925,0.867304014540358,0.00330930656469038,0,0.0146550727855258,0.0146550727855258,0.0165171821719839,0.0203673692801567,0,0.0144430682011955,0.0513276196533362,0.101429197589928,0.199385329305003,0.522857417202198,0.262906631400838,2297.25154419774,0.34043137468749,0.27363287925072,0.00198999659781185,0.231711134999439,0.165556499980168,0.0161223456896073,23 +"26",90,0.257728609940564,0.0856315123349763,0.798418681840435,28.6425653386843,1.08164285742448,0.727684082183507,0.0291637874210263,0.988714409423983,0,0.109330103899424,0.839384373427844,0.0166065780750057,0.0165301444232252,0.206964108950663,0.206964108950663,0.0101911493162202,0.0242505359753535,0.00814068284606952,0.00691620094163662,0.0494985690792799,0.161505273788527,0.345381412495219,0.160031860018135,0.0649732907060758,3759.51406859474,0.164669582551332,0.224281111020339,0.0807932001303401,0.011993956698057,0.228689587688936,0.0398393103110517,24 +"27",90,0.217576264700982,0.167277235104508,0.68352753916044,30.6992740033433,0.857138788759215,0.656583047169766,0.00848911147544909,0.992616357218521,0,0.0148726962740767,0.982631962190088,0.000244296434001753,0.000725782153371195,0.0208116017151427,0.0207317676674643,0.0146579705527382,0.0181811624342058,0.000719959903425441,0.0117596565451675,0.0453187494355369,0.153157888893179,0.229413857234465,0.556528543562871,0.414988484940691,2211.30548752504,0.25070282126106,0.190606539527657,0.0288989620997805,0.1394142870691,0.132238019305291,0.0111789119885906,25 +"28",90,0.25773090491269,0.12356691989064,0.698865434806585,25.8377657702978,1.03245058437195,0.616732303403425,0.00574518104477556,0.993343946152906,0,0.043276708314846,0.74042750667312,0,0.00177897466510897,0.120632417592918,0.120632417592918,0.0162626524424512,0.0344462801994855,0.00467916433573768,0.0123445912050745,0.0677326881827489,0.151202078842084,0.287641340374717,0.413644422625621,0.222091845372405,2817.295083663,0.246929456737135,0.222364284564818,0.0444169408304171,0.0849483585730827,0.281858172894402,0.0164304961062616,26 +"29",90,0.315239567469287,0.181387847346568,0.784115804151732,27.2345153921897,1.09117919885975,0.710842999475264,0.0122316898183219,0.987334587309458,0,0.12884033163302,1,0.0304133540776844,0.00136719537860766,0.153834292078078,0.155204914011519,0.0244382888765575,0.0311080304472167,0.007133756011913,0.0108855217162806,0.0735655970519678,0.250344771496362,0.329817344958307,0.469487149037808,0.237191580229187,2532.49097190399,0.149129599015548,0.246692832289416,0.0261572916332764,0.0561485203333589,0.318173058291091,0.0257876297399449,27 +"30",90,0.361977760565268,0.142334254605113,0.72120488490841,25.302024717942,1.07250357497991,0.776282728583101,0.0135964911434337,0.984146537115928,0,0.225027786718836,0.880427869243836,0.0383479009656912,0.0035088132620405,0.286635681773772,0.307427122582054,0.0223035888853673,0.0344471566967601,0.0115550258719414,0.0133504938531305,0.0816562653071993,0.234683293856965,0.332837778662617,0.32280862233292,0.186223292986142,2785.77349584812,0.22308323444313,0.296023306549731,0.290788784203883,0.0334608713998691,0.36901118373336,0.0504586561371254,28 +"31",90,0.382981578426891,0.0853972274478622,0.817795832389265,32.482028046926,1.35169059365253,0.619802166354555,0.0216958361344715,0.986793237798964,0.00977563199366454,0.231477076273607,0.943573190074221,0.076920647466971,0.00340744884245922,0.576626975281516,0.577498932262701,0.0158161613403131,0.0161363459411018,0.0206186920264766,0.00746962280512021,0.0600408221130117,0.219955650093323,0.411921345567538,0.117483234282387,0.0802871488995246,3500.28166237947,0.196696532802274,0.151663653708128,0.299216099208004,0.0317547754850881,0.384672071616629,0.0636089540652092,29 +"32",90,0.109890826881882,0.0495855751751784,0.613345787288819,27.0644186535837,1.19818735089325,0.615760770083135,0.00440719909358561,0.995192243510266,0,0.0247088914940542,0.949909631787508,0.000683221701914603,0.00118216695935013,0.0328764972040896,0.0386657632068624,0.0164266077606915,0.0242400209103972,0.000885021440588549,0.0133115506074741,0.0548632007191513,0.146432606442531,0.284134261093734,0.455082040285628,0.0860417453989557,2319.64464478552,0.542902509940081,0.199691466540512,0.00756814354711999,0.214408366992212,0.217808756710153,0.0092751120175269,30 +"33",91,0.24874123546377,0.0776437164147007,0.746342717580246,32.9544572681061,1.23295505597038,0.568284292491512,0.0154840212852411,0.99544310567733,0,0.0257499723277743,0.683861009660172,0.00292205302825432,0.00457254740466183,0.0627953144640831,0.0657823052133662,0.0153843275430538,0.0217508569373507,0.00203012761198354,0.0100559333847056,0.0492212454770936,0.17468254520576,0.303187460955961,0.312272600910686,0.193216773809509,3111.41968616868,0.214714327091576,0.132147428864762,0.100506012297711,0.0421626922985216,0.231008493985105,0.0235400119347994,0 +"34",91,0.257942346226944,0.036191100064914,0.769739618710856,27.6384954832884,1.23339090687672,0.716661562180481,0.0200989373801125,0.985640885913151,0.00219174381420033,0.0470673484221206,0.550610982861641,0.00609772291969944,0.00916244761061724,0.201455289790601,0.202381513945143,0.0149928720969567,0.0191203264341407,0.0102876866052624,0.00652554075242877,0.0509264258887886,0.181857753106252,0.340888864153007,0.368107864415656,0.169428520068969,2984.81397187557,0.191505518150963,0.179840016528763,0.0750603083952256,0.0549012905810015,0.20536519627338,0.0267372142078705,1 +"35",91,0.278855295316212,0.054333111947254,0.853347936710467,32.3194388430608,1.34692288310637,0.715501197258448,0.0136850031038534,0.993967822084019,0,0.0480760581729479,1,0.0170110371974764,0.00076705112471418,0.122708691694695,0.12435575018137,0.0145059670767558,0.0234771764200559,0.0123981330459037,0.00731261722803126,0.0576938937707467,0.186580268392064,0.321998936571591,0.447647001636091,0.125683313573701,2671.23367279702,0.195677798507474,0.114544911745702,0.0641361596626583,0.0305098886103601,0.164317755382749,0.021860976667811,2 +"36",91,0.286801320815771,0.162808991044358,0.872477594317818,35.1352995835193,1.03760461198041,0.66866252040674,0.0284651887128697,0.985299992943715,0,0.0409806958882977,0.607856687314208,0.0156279143908073,0.00947817538873416,0.0755648888793041,0.0760788405944588,0.0157454352239687,0.0318547792551304,0.00425039983443571,0.0131009593491115,0.0649515736626463,0.181661567648941,0.343285687594596,0.253735992948437,0.140011399054584,3175.36335854618,0.227102143181106,0.150710050161506,0.0410589049320136,0.0219955701041643,0.169062758561615,0.0337369128823647,3 +"37",91,0.328916590029927,0.0860003046590414,0.805778522662781,29.8529864996229,1.02316636117486,0.629431642055903,0.0478034225509146,0.987597690789814,0,0.030903728161985,0.611790489285994,0.0121275349552107,0.00152146623576352,0.263075942645015,0.263381918634232,0.0136154937238952,0.0217181984616165,0.0133028793906533,0.0120996096075153,0.0607361811836802,0.19899538978965,0.344675392341464,0.208512612938849,0.131661968747048,3571.01125490607,0.288777905957114,0.194921244758287,0.0444222777796102,0.0211873229176013,0.279964384814306,0.0575578400125565,4 +"38",91,0.311941402004923,0.0717407039422917,0.704143266694591,27.2475243230137,1.05157407063589,0.720587021495524,0.0512615656241675,0.991317535623103,0,0.0575609856020086,0.282129600381827,0.0160410616398901,0,0.253079878751963,0.252573593072714,0.0127961473279675,0.0194758569017512,0.00855251423345124,0.0103748610302088,0.0511993794933787,0.192159632117902,0.326484579582219,0.183676895052344,0.0767897774529167,3464.52506723338,0.140780682135294,0.234736417873952,0.0500171159285455,0.085085823969579,0.249935770478353,0.060640376805592,5 +"39",91,0.267504997877798,0.153119271187738,0.704134913242199,26.6951222308663,1.09250338012374,0.642812050531647,0.0179878136038206,0.992853872517134,0,0.0125875772583021,0.5999038599452,0.00130583267001919,0.00222451429454538,0.266231733019918,0.276537159631509,0.0198034640263824,0.00839433036783288,0.00102001581414201,0.012098094650895,0.0413159048592523,0.189845855909304,0.413780147141864,0.152663186497822,0.0700625262399674,3392.79449326523,0.258583278967389,0.225545686471806,0.0218606228159053,0.0466169462033274,0.371367450161611,0.0277792095995669,6 +"40",91,0.223635457931403,0.0930503137615479,0.756678347754639,40.2640944047357,1.37039619078909,0.611611091027802,0.0101447404341028,0.996547428408758,0.00250837517655997,0.0366296696088462,0.927944401434521,0.0059389138337341,0.00111524111813801,0.266402999858637,0.2606490416817,0.0136974543165504,0.0126294205426085,0.00366854881071624,0.00807528149586929,0.0380707051657445,0.17595921249998,0.302519272510301,0.349539342791791,0.256269676134835,3028.73095959848,0.129961350014049,0.0945309776410573,0.107065482719761,0.0727555028510938,0.188752317777298,0.0285717697168162,7 +"41",91,0.293118187126268,0.0779044025176921,0.763595606141784,29.6931923442255,1.11414692290579,0.560429833099903,0.0234006445288921,0.984820634038702,0.00172134716227234,0.193547090704122,1,0.0396479740029345,0.00371947715240213,0.475912391176862,0.474500746952723,0.0169778238476603,0.0123518494496524,0.00858438495816934,0.010339413897518,0.048253472153,0.24752394822073,0.33096026011727,0.455177948528583,0.335406679380136,2537.95759641394,0.108241875859237,0.298827749323245,0.126076911566545,0.0306935313549948,0.425995285552171,0.0496372191318167,8 +"42",91,0.258019474861627,0.135793480997155,0.738396755290183,30.4148190641173,1.13858271934978,0.66097735720159,0.0151311968702832,0.992955093907841,0.000819525273834361,0.0799392461682095,0.851823910776592,0.00710319357407849,0.00510441833201078,0.146487295429384,0.146038001877841,0.0120771949135895,0.0146085130988871,0.00491918449727991,0.00663200127625429,0.0382368937860108,0.210839873897122,0.379834070703328,0.236744960351697,0.140042628287912,2974.32478017123,0.275352503824957,0.205499341019948,0.0964238901706759,0.0904786643206268,0.278412572492961,0.0314044919255985,9 +"43",91,0.266154394316961,0.0447632818954663,0.761089460343487,41.6043076634647,1.37455507382466,0.573585526668443,0.0193667831803509,0.996565595107278,0,0.0164302934703824,0.488619515870575,0.00168904622569234,0.00207494794500235,0.024258177757798,0.0256264688257365,0.00939974674279468,0.0149647381082805,0.000536155613267521,0.00661622869717751,0.0315168691615202,0.155027969373222,0.290159245870815,0.431938896637592,0.297086357710097,2828.01636584509,0.227536834143025,0.0759451709188286,0.183712651003025,0.0489935521448008,0.156098160261433,0.0217953599455271,10 +"44",91,0.452520573160113,0.273103734170988,0.756219274224928,20.174341088488,0.849821583075784,0.827849200555659,0.0443074401235643,0.975070138387625,0.00715219207300296,0.209016540269167,1,0.162731732704867,0.00654827771051741,1,1,0.0214887091976617,0.0131071186582609,0.0108040614858376,0.0109592454610295,0.0563591348027896,0.378118698637151,0.493022249299039,0.380110605759784,0.361131981587143,2688.8825662682,0.20150449344958,0.494273310166186,0.227285148509899,0.0306320605849028,0.791139217393894,0.173567739967772,11 +"45",91,0.291767690446574,0.130198560533453,0.754678968892563,24.8346922848906,1.06540921082145,0.775436636600707,0.0207322688717603,0.993614896281198,0,0.0364507413479271,0.308804033497878,0.0247020271738359,0.00209034612235193,0.198254360640432,0.199577096699329,0.0172366158877511,0.0235109461836388,0.00549993574741628,0.0113504675214436,0.0575979653402498,0.236142614155124,0.386943353604295,0.207557592038123,0.0793504443634986,3209.52714262674,0.3512475361434,0.265352598754818,0.107735809086981,0.0589429879971312,0.203963571433427,0.0205569508912838,12 +"46",91,0.311403811792972,0.111183913008353,0.79861954073461,32.9373783413254,1.23871393397858,0.69765326033274,0.0209766593088919,0.99444522867059,0,0.0389291200713038,0.592457764466208,0.0195252418238912,0,0.059488452879531,0.0603592395895398,0.0149812830244786,0.0202294978614345,0.00210281657216077,0.00959768636977038,0.0469112838278442,0.233148395274377,0.328861268171988,0.404174307795714,0.232175931438968,2713.12490118206,0.194595769023556,0.140264665701366,0.0611286971001868,0.0707062739700748,0.241331051140292,0.02755366426209,13 +"47",91,0.337113014392915,0.0811080838207363,0.802772736590181,38.8145496344131,1.15094404869727,0.653067669199497,0.0299162331501258,0.979473127966586,0.00389675708049421,0.0766128314305889,0.621922920703448,0.0119136045769003,0.0116261564083483,0.0886647158982606,0.0895383236368851,0.0142471300395834,0.0266305594070525,0.00670370465615645,0.0111722202829317,0.0587536143857241,0.182256783902614,0.366930109969972,0.191633254206381,0.134113643145022,3246.82876535126,0.10608754303326,0.1012727940634,0.136125570654041,0.00973672211178116,0.264874573953715,0.0558332794013269,14 +"48",91,0.315200772550556,0.0656690278399847,0.764853507436691,26.838562014546,1.00522203638609,0.711644671726928,0.0399942222888915,0.994175660976396,0,0.116027330704697,0.566380412481859,0.0363119811543442,0.00490144686899602,0.273208820060124,0.274565853540322,0.0119200046973196,0.0164820502770942,0.00745155882197612,0.0084357694877748,0.0442893832841647,0.226888376832391,0.357938159257856,0.248058828219497,0.0996254723930626,3243.00415380999,0.199848018988448,0.276968738048995,0.00941689966250192,0.030674623242178,0.434434853675499,0.0546130908799087,15 +"49",91,0.352998718101472,0.0694541518498159,0.895530870045321,29.5479907711654,0.973776946688541,0.706521162014412,0.0170283857533392,0.976413767725033,0,0.0274568361293618,0.999008250175722,0,0,0.512202090208763,0.511553246474853,0.0144164484481247,0.0118071001660796,0.00349685089646349,0.011509548558571,0.0412299480692388,0.249969957761623,0.406413778918696,0.437368380263838,0.265601287015605,2363.80717068779,0.169321890686791,0.095778853528899,0.0230666142970145,0.0142864701576032,0.220091241147925,0.0376263773352,16 +"50",91,0.328780348181033,0.117023311084779,0.753432319996386,27.8082138276191,1.01688653953216,0.756948796059362,0.110974448001599,0.968263449822408,0.0103925218909414,0.192193079177673,0.951060820061397,0.0279158108239187,0.0528033524583176,0.326424694218289,0.326899620844334,0.00748716662053128,0.0124826846950788,0.00991554019202712,0.00454576246343258,0.0344311539710698,0.244423867776859,0.391935824075136,0.457263286162068,0.300494076120015,2483.55560402802,0.18338298607317,0.187408644506812,0.0819730621780604,0.0270375955867507,0.476022234432646,0.128808059326205,17 +"51",91,0.2267700190755,0.0587081604926912,0.808321490230902,28.1588405124821,1.02804152659393,0.571212677916643,0.0318201921352386,0.985714818892763,0,0.00396824483688535,1,0.00855118275822393,0.0023720416609833,0.892928504127784,0.906535883608558,0.0405808243519004,0.00716387324633931,0.0012985528514411,0.0123857160262889,0.0614289664759697,0.250803464305239,0.346836757034226,0.642896136367969,0.382374347407631,1996.3207873414,0.29923706137548,0.168848406483715,0.00687623540316362,0.0629667733241793,0.195480012818581,0.0376935539212104,18 +"52",91,0.294529411256439,0.108134607522284,0.814551279724686,30.1737267660559,0.960849823421489,0.647047013189969,0.031216989318916,0.979371950773018,0,0.0311403074994537,0.932974134084669,0.00103201222558076,0.00441071942742856,0.266528928168757,0.266528928168757,0.0136648694449765,0.0224740188119351,0.0102753503245926,0.0115738613619982,0.0579880999435023,0.149721788263426,0.377218038555588,0.101544624069999,0.0427417643295433,4058.62306360218,0.228800646564521,0.191994092141511,0.151415814999196,0.0331102684399205,0.189464338323683,0.0407479752751138,19 +"53",91,0.257215434468774,0.0588897381254118,0.770671805599335,40.0007509145261,1.53924931806322,0.626592093327253,0.00503083689161957,0.995557480772919,0,0.0430882112970785,1,0.000655944462868062,0.00052475557029445,0.0825366648505992,0.0825366648505992,0.0242368349976608,0.0348383171792807,0.0038415206708269,0.0137899491744091,0.0767066220221774,0.18580568651258,0.295972867142387,0.38659424534039,0.30166350594088,2943.49046259093,0.196895595546752,0.0811334580157084,0.0884552987594674,0.0957123185083342,0.251905366695086,0.020488451346865,20 +"54",91,0.211462040602683,0.0989079273724078,0.859932448540832,44.9199772461764,1.31459887014919,0.390389661871039,0.0195603280647359,0.996305279103598,0.000877863695536919,0.0201617233930364,0.996896598695165,0.00510352573921926,0.00182939112615525,0.202456167730461,0.202193425467322,0.019794901446077,0.0135661291211341,0.0034624396697851,0.0121556012832038,0.0489790715202,0.186407421380539,0.318853956734038,0.489556923625105,0.295966586344694,2608.98434322705,0.154105018829615,0.057868941332008,0.123053579122103,0.0258779542330117,0.164829835904011,0.0236485916667848,21 +"55",91,0.317936635673534,0.140863505514245,0.792822416763904,23.3489321132618,0.951842088625288,0.676451248164747,0.0402477168208664,0.982469715703714,0.000668207691778855,0.0226289725756224,0.784491054494438,0.0502102519937891,0.00496733058019346,0.996923284203988,0.994906622940877,0.017230189604277,0.007538733024957,0.000230140644634317,0.0106673690324286,0.035666432306297,0.22430858203015,0.450835135255628,0.362023430722173,0.172882142892271,2514.14650414765,0.264149823027348,0.330993291447488,0.0626427425686015,0.0257251072135097,0.501435577707811,0.0570025560694932,22 +"56",91,0.131906334523749,0.070832163652369,0.579011037099342,28.9233508998812,1.14700776741477,0.543553309784729,0.0121659266810225,0.995034507043954,0,0.0143303382081706,0.740639435047106,0.00205725644400856,0.000134681580889754,0.0154934754937848,0.0154934754937848,0.0152495384263034,0.012280394053472,0.000177101048791649,0.0115940986160514,0.0393011321446185,0.115663966409922,0.212745540121671,0.590151231687592,0.367328533702982,2259.42679720445,0.299235604045732,0.255077653525413,0.00203324997958054,0.219185184288208,0.152988162834329,0.0103400350326503,23 +"57",91,0.252871641256751,0.0840489514220284,0.784840648839722,29.4749796064569,1.09824876051495,0.695617824344401,0.033192058145145,0.991031568784755,0,0.107782214538157,0.826156500351723,0.0287002519347066,0.0143985956849727,0.198503632593501,0.200042791393421,0.00764548340558557,0.0180989460773413,0.00629275555330913,0.0053675149825869,0.0374047000188229,0.187276253184985,0.3560844134169,0.184666361878758,0.0900484169816736,3579.02708993935,0.148214474579735,0.208021959050165,0.0722403801843129,0.0150747475409263,0.217376377414782,0.041618655614837,24 +"58",91,0.220726752977787,0.0891112319611099,0.685757540874869,30.5935986161661,0.955787855848978,0.637973940819581,0.00434821792140194,0.983823975693303,0,0.0068209590598113,0.915759944212426,0.000132223331951947,7.93339991711683e-05,0.0128008730154333,0.0127207984303364,0.0101006584376681,0.00934116440080212,0.000212130142479055,0.00826066846410234,0.0279146214450516,0.222076401250746,0.237024127746741,0.780788209881744,0.591726907849209,1651.90284573685,0.248973514820961,0.183840747277708,0.015364362185494,0.167579271526257,0.164985772921249,0.0146930664792286,25 +"59",91,0.220970064692365,0.0939353119469589,0.708579552721529,26.1789588321788,0.990692641749863,0.601454547763064,0.00882348707100872,0.997088655912195,0,0.022472238202201,0.660506819307757,0.00259796970644613,0.00173576709611644,0.102678846700114,0.102678846700114,0.0134948609190173,0.0181280716887088,0.00330204627032452,0.0101725878324264,0.0450975667104771,0.175049411356911,0.308093360916043,0.426728953650117,0.182252438814953,2738.58631471362,0.233251419462491,0.213094390213979,0.0231892235597889,0.0767651303374097,0.289686785327141,0.0140522499485798,26 +"60",91,0.289099400433673,0.146664110648981,0.781408199410152,28.7566068158759,1.13419642029075,0.671036635493484,0.0114904950248075,0.992498040123869,0,0.109022623429904,1,0.0274940894926147,0.0013080451888464,0.123346800740123,0.123346800740123,0.0243387380875485,0.0247836216949475,0.0030797531539497,0.00981709153750188,0.0620192044739475,0.278556063658436,0.346321336863743,0.432377006575824,0.176258565016692,2654.91312682291,0.179784105304546,0.230866143179312,0.0211266961055102,0.0312567561995757,0.315382449733424,0.0244719536459203,27 +"61",91,0.341189038257654,0.11806350914844,0.741099330601327,26.4461824657407,1.10637354392362,0.754159135801699,0.0115903101901937,0.989943504710226,0,0.175252102381374,0.869704278744842,0.0278242800784423,0.0018790919492349,0.252950495541259,0.271877423825178,0.0179211793255544,0.0205438860796739,0.0130065206549146,0.0102027121027376,0.0616742981628805,0.24608678368874,0.356173194181501,0.222885006921905,0.0955588364199396,3086.40633045702,0.190634827208171,0.274405452664117,0.270419191701945,0.0284047578516304,0.309778452296681,0.0395373434251808,28 +"62",91,0.357581540986651,0.0773634893915918,0.818652707359069,34.5852632304005,1.42109395302084,0.6078573948155,0.0179961715816336,0.991459624923274,0.000845068471328379,0.178020139770161,0.899083450213599,0.0593874057784683,0.000895155940777079,0.506949706425346,0.507554733745025,0.013045429447364,0.0119403797281807,0.0118414080469533,0.00545042393726655,0.0422776411597646,0.204997513551764,0.442589481628601,0.0481757410508063,0.0565644716225162,3944.27278686766,0.186904913567193,0.125868248936608,0.233831824300731,0.00750948551359616,0.316076889344096,0.0426428658211735,29 +"63",91,0.141505725916608,0.038675043334677,0.657753884027141,26.7718779895593,1.18941576237561,0.594383727210419,0.00320951907845061,0.999768276809678,0,0.0126809371854426,0.969513573486278,0.000731213382407133,0,0.0222781298366654,0.0221060154283873,0.0133216024157123,0.0158073400116715,0.000483347961671885,0.0112119896865372,0.0408242800755928,0.16638533694079,0.273871845730241,0.514581727670722,0.193404414142615,2226.69721060539,0.387535813852102,0.151409788875634,0.00510645401751664,0.215125356633688,0.150701012860432,0.00189600550219935,30 +"64",92,0.248471260414596,0.0960106215410441,0.697114769114837,33.3715284262543,1.22791223506303,0.608483256639505,0.0321348106474393,0.990081175701233,0.00174067552029957,0.0268024097904035,0.662456369732495,0.00382481020061111,0.00199617605515368,0.0436535289850758,0.0444523154950461,0.0155582625293606,0.022876097786493,0.00119040687874656,0.0123087647773465,0.0519335319719465,0.154436637187501,0.307527830271226,0.522702820375727,0.379320936832418,2365.96415034093,0.319613844507906,0.0936596487675634,0.0780358877370269,0.0848480876620257,0.247675781411805,0.0361399148769955,0 +"65",92,0.209617454228324,0.03540448906885,0.7572739005172,29.208536395334,1.29982728166674,0.684170154796183,0.0151515701005206,0.995436428974671,0.00130143290907059,0.0363831609015728,0.581220807944823,0.240131721229072,0.00650308711351258,0.148937457685427,0.148937457685427,0.0134294501218256,0.0190915126747878,0.00509320914700997,0.0061901057203802,0.0438042776640035,0.154346769299369,0.34443463566323,0.393042279989821,0.177712991940868,2910.02907422403,0.197522699597192,0.160215257039119,0.0624884322647832,0.0460251856118441,0.24548297216711,0.0230091925318052,1 +"66",92,0.17342894268153,0.0608118226990112,0.803655152162601,32.4602002667554,1.36508692815416,0.644058672961198,0.00494413006425341,0.990152301759726,0,0.0277941090427498,1,0.0289285853709215,0.000484920702934275,0.0996642215476521,0.100696170716899,0.0139238324848628,0.020428651318549,0.00517618244850605,0.00715996473603459,0.0466886309879524,0.142567809775113,0.316789077191415,0.416930484729151,0.0877902955045434,2671.11911656778,0.151038986268765,0.0961215909171504,0.039712326745584,0.0468635812525458,0.160191291759244,0.00980461631117934,2 +"67",92,0.237453152105375,0.175044646262366,0.760711385842282,31.3658571632739,1.11142224643867,0.624782817063898,0.038257369815947,0.980415432395853,0.00227094632465908,0.0353940429055578,0.476866845847331,0.00913160517899746,0.003993024928766,0.0797701121452516,0.0797701121452516,0.0129620546421248,0.0265436875390758,0.00406373947528093,0.0104646731768776,0.0540341548333591,0.155742452437078,0.326720565633331,0.371842163521861,0.203554530680042,2759.24335477852,0.17740681593759,0.184023726491956,0.0161262860843473,0.0403329305882619,0.164858243126015,0.034319205143945,3 +"68",92,0.255407919836234,0.1116259057434,0.720904885395016,31.6362339167456,1.0516430883691,0.581116923335223,0.0236083153869515,0.988868268207742,0.00103812537639258,0.0329286787116099,0.681717100420821,0.00961238845304549,0.0149755100638614,0.291019002430333,0.291586828033817,0.0116916699655711,0.0186882998478922,0.012825112250059,0.010617841870769,0.0538229239342913,0.168624812183501,0.339985194385845,0.253167228491056,0.153240675323614,3231.10602770485,0.266950992785621,0.150835798335237,0.0218291951797427,0.0282324400136318,0.268137865455237,0.0339478181733109,4 +"69",92,0.226808939901987,0.061241125763421,0.681712338820726,28.2803826413901,1.12673833272647,0.696285125152903,0.0353599092801123,0.996722469279921,0,0.0525785916392354,0.270929090223946,0.0284010841593398,0.00138531256685213,0.236438943394121,0.235436500824101,0.0112218418336118,0.0168787908773424,0.00645781547371333,0.00920420220428321,0.0437626503889507,0.158248978412331,0.326826586478005,0.199174281697094,0.0713330438162361,3287.55948599709,0.153911896356176,0.227085614893803,0.0468675360628927,0.0990570727474166,0.307230937233205,0.0462406269563788,5 +"70",92,0.211122091445295,0.129890301508656,0.649925270029052,26.8378559071253,1.09476970137154,0.644700941282307,0.0400808143019418,0.988975014296262,0,0.0123030836885995,0.614332831524908,0.0071467756827068,0.00532576632094349,0.258785869957218,0.273334244156408,0.0187609849396503,0.00669832401051433,0.00105834062166451,0.00926670498168534,0.0357843545535145,0.1542515033896,0.42014132067058,0.144324354807121,0.0642384774079852,3210.89257114468,0.258300052704061,0.231697145801987,0.0137126070089286,0.0469954822162101,0.466603134150595,0.0249860996386363,6 +"71",92,0.208031820914903,0.0644071827114778,0.721699134022111,37.4127500414562,1.31056276164369,0.610981395485047,0.0211592759912717,0.988508190732047,0.0058061348198775,0.0359697905925343,0.864707695615666,0.0115101282266674,0.00119816064150819,0.255904094003539,0.255440783576986,0.0131429693094204,0.0122257761949316,0.00231549522658821,0.00673847362441929,0.0344227143553595,0.171734240818517,0.311252828906226,0.463542127402363,0.280831875318333,2497.16622582581,0.125628124960987,0.0785229316202314,0.29736668763625,0.0924267783786677,0.232048791380307,0.0316959415039344,7 +"72",92,0.286721963598958,0.0772417348274438,0.810026548942508,33.1090857236398,1.14786183246531,0.560553465758679,0.0204685588676658,0.989491343056349,0.000515834533877159,0.192809787789061,0.997325693396501,0.0472273881727995,0.0025280686231003,0.497847512841205,0.49692808466593,0.0145429143207781,0.0110807977240242,0.00613677925170194,0.00577473727862048,0.0375352285751247,0.21587452969456,0.35801529340886,0.466725639864255,0.342659287766482,2537.30305540389,0.127756922143456,0.23487896024298,0.116454870016987,0.0425414380193992,0.452032702749132,0.0440091603241502,8 +"73",92,0.193944329758246,0.149686498261265,0.638698556658021,30.0555487433548,1.18633153827488,0.62219469485072,0.0296287318261866,0.992123953735017,0,0.0591790915304507,0.708650506489946,0.00374933142236948,0.0015202610098763,0.135883985118453,0.135883985118453,0.0115382351256506,0.0150607318743925,0.00340852601082753,0.00706050468036438,0.037067997691235,0.162378553849774,0.346252828919142,0.314903476103931,0.210368471554721,2825.57965075148,0.250709638642773,0.149662820084229,0.041405950539063,0.124148811552233,0.265169207588744,0.0326699077504388,9 +"74",92,0.213056734910909,0.0460781537998436,0.724589655935638,40.2304271306951,1.42066280410743,0.570137992001583,0.00756059406181194,0.998200213557869,0,0.0136672559825815,0.502537047350152,0.00110004541547731,0.00255821778647159,0.0208411993522605,0.0210632113332071,0.00877939688053879,0.015694361589262,0.000557650948557647,0.00731244460773519,0.0323438540260936,0.126294449771307,0.27500322668694,0.447539378860722,0.285985166117369,2615.74561320454,0.18573537620612,0.0674860451724711,0.250203035603192,0.0801527761016442,0.178673477864543,0.0175935098769201,10 +"75",92,0.36308199008193,0.309958017186642,0.738163790143677,20.1457126775143,0.81850219102481,0.800094257676038,0.0150739956839776,0.977566518274124,0.007667843237424,0.253258668750592,1,0.114537589246459,0.00200346588700633,1,1,0.0217523214386971,0.0141412762844413,0.00629466658185113,0.0154010812528025,0.057589345557792,0.323919947919843,0.509689357729135,0.346721031590853,0.262537857505708,2669.42593584107,0.15522259594428,0.506774061590737,0.203699604300148,0.0330035456309441,0.81434817873416,0.111081568099999,11 +"76",92,0.298558363847026,0.0981625098286504,0.686352706048353,25.1912743834855,1.02759188931266,0.733616311306246,0.0148970501144692,0.993081878485595,0,0.0196745505507878,0.315949744337096,0.0405443283336416,0.00052129800809901,0.164288234875588,0.166034994738943,0.0156974114781475,0.0234523713110053,0.00532094950221954,0.00897658927867419,0.0534473215700466,0.204149932019624,0.396883634179876,0.277940090594163,0.0825367973761479,2897.72590597234,0.380808371909889,0.223295254792067,0.0913651818392276,0.0666421442134665,0.247187818867062,0.0213391824845448,12 +"77",92,0.25523497189147,0.108482558788927,0.757795671288901,29.9986285101712,1.08748508898908,0.726999026780894,0.0175517893542375,0.99104444727834,0,0.0249104848487205,0.650528639604153,0.0264523785415934,0.00118777622705063,0.065796610128051,0.065796610128051,0.015001182678246,0.0220975393903395,0.00128088034581171,0.011181994820171,0.0495615972345682,0.244519704082588,0.336532829758159,0.541749997247054,0.323464929922193,2219.07278431634,0.186900379392447,0.151403050552268,0.0500423239756582,0.0992671280067498,0.290290419878349,0.0367166015339119,13 +"78",92,0.239530920205232,0.096918785324628,0.750853543702822,35.527719183919,1.16127239001017,0.635505004286946,0.0113952679904418,0.989435364136505,0.00397156670568444,0.0747223304069627,0.665012916919274,0.0107225119196869,0.0096386733772473,0.0961847072385442,0.0944969709350435,0.0119866262382247,0.0238335071026236,0.00384508134954095,0.00963662221766567,0.0493018369080549,0.146061855212031,0.387430447552101,0.203748342695405,0.118895011980836,3130.70158929602,0.103542615388491,0.0768812815298246,0.123656154008532,0.0132277107635084,0.308261271987122,0.0189868410318478,14 +"79",92,0.304171767518912,0.0780345280327865,0.744777923827094,28.1947966012117,1.00384334268493,0.781868282800465,0.0190642024848399,0.982500400638274,0.00315017790370151,0.0673245412699692,0.759318957961131,0.0144278439032643,0,0.2666719984996,0.2666719984996,0.0129053283336589,0.017132355008534,0.00558584237596288,0.00900899385186351,0.0446325195700193,0.213881068408477,0.390271228691705,0.362578067577903,0.116507006465772,2674.49288626094,0.368406905398141,0.230558381905867,0.0159747990024232,0.0723116216980358,0.540947930035677,0.0563965851608346,15 +"80",92,0.337442969928088,0.0822067111087286,0.801699722610288,30.0111890661409,1.01859447339547,0.665964844066006,0.0417611543033868,0.989471102718271,0.00221290693153716,0.0282277308052285,0.948875757286113,0.00724631213756106,0.00448758314533693,0.448923885711805,0.445965594963311,0.00967131621983941,0.00878748790008417,0.0052685594875458,0.00765221188744241,0.0313795754949118,0.1637388704973,0.364432739060079,0.409684068324382,0.268748219368601,2494.08686255057,0.121439556964625,0.106880183783636,0.0123399566365159,0.0203821001634772,0.427748931987194,0.0430919048805254,16 +"81",92,0.288234166266056,0.107088681184393,0.774329987477744,31.1246220371158,1.24080265618122,0.706937559088243,0.0448789500098971,0.987457814849574,0.000705679964894391,0.119495430070557,0.92429250230451,0.00692004116272641,0.00766222651876742,0.25159718365849,0.25159718365849,0.00693553300152959,0.0103243251145661,0.00458971875960279,0.00530058330428377,0.0271501601799822,0.170282986421511,0.394645676196209,0.277612596692788,0.166682545382567,2940.83711144265,0.225217286886366,0.121379448608045,0.0521990995517115,0.024711748318215,0.561561542436176,0.0778254755457821,17 +"82",92,0.175433072671449,0.0648989584351796,0.745553867658038,28.5030275774638,1.0160636271181,0.535187128814765,0.020098344693449,0.981124758672888,0,0.00830846152865738,0.993191602002327,0.00585068595258679,0.0103830805127272,0.801775176527247,0.808787606968262,0.0263748327690227,0.00468247163984391,0.00021948002446811,0.0077222480907217,0.0389990325240564,0.182125285416703,0.385878205168817,0.463302661734363,0.269060018465365,2287.31450779933,0.2200712439043,0.139813165604204,0.00511630652947603,0.0903808448497943,0.213680863905851,0.0266067499709632,18 +"83",92,0.288314088140708,0.0661682197230243,0.742060255160179,29.6538052744119,1.05311258187853,0.627188103509946,0.0223329555234425,0.998267325740601,0,0.0106034165184316,0.933269149414215,0.0239919973871387,0.00771103785401846,0.25781457604946,0.25781457604946,0.0131057966948479,0.0229479303389922,0.00879760363795186,0.0118412605728531,0.0566925912446451,0.158982531657785,0.382054788609361,0.215279869923322,0.0982438562473274,3270.57232941674,0.184959007201549,0.179523432724613,0.142470718344288,0.0249369918490959,0.199318074595896,0.0397538481638204,19 +"84",92,0.192434831330772,0.1137573737145,0.730945392963287,35.5945891652223,1.38324458299748,0.563257543684629,0.00275204682478126,0.996103434135091,0,0.0258107065911449,1,0,0,0.0833606777496643,0.0833606777496643,0.0162603038367508,0.0201524414148815,0.00251991589285513,0.0118698966877601,0.0508025578322476,0.159522137976756,0.311854188102817,0.427667625201547,0.283972818329737,2769.36513396311,0.203619585823539,0.102287194667502,0.102153391983467,0.0543430653098612,0.255070822240656,0.00949588624857338,20 +"85",92,0.15936186685311,0.0924053922629452,0.787660390058598,44.7906465067488,1.32123237878145,0.387980265347424,0.0145928117616266,0.994704631517395,0,0.00979834244118117,0.967456847025131,0.00254016276895556,0.000816998967947509,0.152801009847645,0.153451127239405,0.0174596987510347,0.0145377143750739,0.00497542643640113,0.0101877500568346,0.0471605896193443,0.163044887775755,0.324824603101521,0.554765686281177,0.31213030112414,2329.03251908091,0.176733207733097,0.0467275147251039,0.120632081748314,0.022961010705991,0.159241509252312,0.0157665795747832,21 +"86",92,0.236610939976954,0.138382216126718,0.704680649814635,27.2362368083999,0.995986102277123,0.649646472595313,0.0741891003796173,0.97565972488154,0.0044519884709146,0.0351133206482209,0.847997131892976,0.0834043238457172,0.00843118718091958,1,1,0.0207383294310436,0.00736142030305764,0.000647554459807896,0.0109392549610942,0.0396865591550034,0.181442628528071,0.4145780520412,0.51532171305962,0.335301377138217,2270.10119597344,0.349146684527177,0.185494041402186,0.0248730404096014,0.106391644691342,0.538532300113223,0.0949160955433194,22 +"87",92,0.123127832244632,0.0888587660809765,0.591717517815935,29.7219925326563,1.30092106454172,0.520114927718231,0.012122580075608,0.981499945935293,0,0.00691758091294449,0.737744095142171,0.00174543449588866,9.39578565223101e-05,0.00805389364929699,0.00805389364929699,0.0125462299864986,0.0106991322448111,0.000207231907879598,0.0100413112259163,0.0334939053651056,0.0952448214070221,0.211659630978859,0.61172738033179,0.361487690994401,2152.7455607451,0.319088868292226,0.224408541011338,0,0.236913892519159,0.180075821486052,0.0159984895181743,23 +"88",92,0.210846147574559,0.0781047622153041,0.731815224552381,29.1132839549116,1.06484597619539,0.752255710291711,0.0314990677258871,0.988549459085324,0,0.0968482734830977,0.786495589968164,0.0186390171617532,0.00494983731795205,0.193212962817759,0.193292564316738,0.00689919299569888,0.0148546528690525,0.00639298651641506,0.00542211114061947,0.0335689435217859,0.180564689157679,0.371814026135891,0.259832514918917,0.0971466774491484,3153.64889636618,0.181876662222713,0.172293465017166,0.0640992748614709,0.0203674939893342,0.259799593153124,0.0342056458743915,24 +"89",92,0.163074159083337,0.104637739764101,0.621515804197295,29.8860283345457,0.976609351288134,0.574184411740491,0.00186212173097215,0.981204601766852,0,0.00939475761770494,0.842650841103665,0.000732931852216567,0,0.00842871630049052,0.00852033278201759,0.00924683629320617,0.0115551571931168,0.000187270529556869,0.00970319937035598,0.0306924633862359,0.204746613466853,0.220394656748028,0.888060517925531,0.782576596627847,1347.57077794191,0.258638079989892,0.147414065025861,0.00783610189246065,0.209860218386809,0.153896164280625,0.0120148822193174,25 +"90",92,0.194851243570375,0.069940990401058,0.668989100465903,26.9144382534869,1.13046223211753,0.619083351452823,0.00645754506754422,0.995696146757884,0,0.0296617163663127,0.652737503889894,0.000524396705880941,0.00154862990851747,0.123167790127535,0.122667953630779,0.0116856188391346,0.0164324105805752,0.0046533093420997,0.00861180582319415,0.0413831445850036,0.149200599767873,0.300654577803887,0.500353264132566,0.232740796175983,2507.03835460407,0.191317999382619,0.188051408734218,0.0177394399221864,0.097849952205792,0.352006949316573,0.0146239766986921,26 +"91",92,0.23090890859319,0.124837229852339,0.753648689952428,27.0902113964806,1.1335970787696,0.69889961938166,0.0110578299413977,0.987586033268848,0.00108781428154812,0.0796028036810645,1,0.0161891511390303,0.00279361234005773,0.0988794694671703,0.0981039618629876,0.0193400910073954,0.0223134629365971,0.00366686933187665,0.00792715258180964,0.0532475758576788,0.24806386357092,0.358505616451603,0.419060294203166,0.143278366786213,2566.92158025995,0.16145054933629,0.216320996637162,0.0133588296403003,0.0544614222590213,0.3770711257384,0.0307712292816681,27 +"92",92,0.301697625735449,0.132108951944362,0.719431339175942,26.5920931240504,1.0933436859158,0.71371919298521,0.0211974067531653,0.985684570192947,0,0.180150035515971,0.880779840993864,0.020822112571828,0.0107634222016627,0.248859030926298,0.278622272290907,0.0139258850690214,0.0188458364890335,0.0102902445345345,0.00808848279694764,0.0511504488895371,0.211187505919652,0.367127755472351,0.23733913916188,0.0942413416235142,3053.39292623269,0.240728268396434,0.241251626929679,0.257210810720917,0.0266773570888568,0.332510267897048,0.0552001492970448,28 +"93",92,0.2856178931463,0.0514163085681888,0.782773175506326,34.5161393971978,1.44139728149932,0.575078327826785,0.0109693509364278,0.996130546351046,0.00115995546633278,0.168082003595646,0.890160995027876,0.0535769673963923,0.00231991093266556,0.512011485869146,0.512011485869146,0.0108826337428015,0.00797932914329012,0.00802380527095431,0.00451246894183463,0.0313982370988806,0.146854065745073,0.432678905935322,0.0494962982402963,0.0595329803008739,3920.95590925572,0.12816257753814,0.133119752270774,0.221321010574365,0.0030516571302211,0.302428799179501,0.0368156015513622,29 +"94",92,0.0863530433508741,0.0370819442161293,0.669948567335288,28.3413908279003,1.23820712800897,0.57079912439434,0.00366850426536709,0.998676269643053,0,0.00537399087480601,0.993593536830113,0.00115605534619475,0,0.013074276656135,0.013074276656135,0.0102629724463923,0.0127122421474239,0.000254360035051613,0.0091605638389196,0.0323901384677874,0.128421455298199,0.275733082546595,0.467093816115967,0.147866281564935,2332.03006165305,0.358321791173541,0.0952461949010616,0.0049902064672277,0.214460704374474,0.174376486484342,0.00048579125565619,30 +"95",93,0.231729595663473,0.0597267900726393,0.743264817866707,31.7465501136762,1.19649329405656,0.571139593562853,0.0181280947144379,0.993025605956905,0.00203362179030268,0.0199211422210407,0.682335720779392,0.00234869046706612,0.00158935513200188,0.0249407548636643,0.0288709531969091,0.0191117702679741,0.02870482324537,0.000722791954711213,0.0145350693230873,0.0630744547911426,0.135938551083861,0.296371100433273,0.587174678608012,0.421627222504978,2236.71999955694,0.275817047943041,0.117459764935668,0.0702489803764164,0.0714395751136944,0.20726078635996,0.0192523120055039,0 +"96",93,0.218569214811578,0.0483805891048311,0.755549198369299,29.6407137042407,1.32972841290573,0.671304369028005,0.0159214270742686,0.996794730312839,0,0.0216412076190367,0.547783304716678,0.192061964164516,0.00356827650713188,0.135164437151319,0.136194444286986,0.0159458656605956,0.0243511803452477,0.00613160705654952,0.0063378298890612,0.052766482951454,0.119017659505149,0.304083743855368,0.428401728222773,0.209417769057228,2734.35284366097,0.182053310199238,0.14576494994969,0.0569164424357141,0.0456983509226495,0.203995178018276,0.023090951517319,1 +"97",93,0.174192990977231,0.0575859741659568,0.790086940927576,33.175728778733,1.39188897622194,0.634532324257174,0.00704680793578369,0.99346619945233,0,0.0251577837275049,0.99926209629082,0.0248563328447016,0,0.0822800978919516,0.0841522311493718,0.0182355494321451,0.0260170785325334,0.00444058676503178,0.0075514968281396,0.0562447115578499,0.110799996697763,0.294926297246091,0.552741856067637,0.120016260552339,2413.2588894109,0.130993738213868,0.0766305455148404,0.0352215032819183,0.0601578440724462,0.165661066537123,0.0122188950085294,2 +"98",93,0.250869214229442,0.0861972960869209,0.774901029890479,31.4210150762497,1.13056888177284,0.627625470144012,0.0389246252782413,0.994546427883787,0,0.0366358849800512,0.56878034750933,0.0132870798889333,0.00669518472579685,0.0730116596342481,0.0715086630726734,0.0150243613410586,0.0322313773064785,0.00297075836646928,0.012369459120135,0.0625959561341414,0.127251403262706,0.302684646503467,0.421760885385674,0.269408507472147,2765.66732468308,0.197785404109329,0.165492055486221,0.0353188995642596,0.0394825747887642,0.169028238959192,0.0449230115200135,3 +"99",93,0.270383151569299,0.10451500297672,0.732635426893994,32.6602225519358,1.10825486274954,0.568235226106797,0.00800065685415209,0.994596405691313,0,0.0178941560370028,0.613185601589284,0.00638681204094258,0.0084157989636377,0.255930701662486,0.257175528627338,0.0130561181382643,0.0231593920518584,0.00851332522068987,0.0123701777269843,0.0570990131377969,0.145323658598805,0.322759642358194,0.23626020932086,0.119010285547497,3078.81757510385,0.277649484349299,0.118985951727662,0.0138418864430542,0.0488447521201587,0.279280952140075,0.0166809142207188,4 +"100",93,0.276416784435186,0.0607084562121796,0.69092906089786,28.9014207474961,1.14515959368028,0.676022562065852,0.0373159259946498,0.994890357759543,0,0.0477616241992331,0.256518245273597,0.0159780210200966,0,0.21255648503388,0.211878188982178,0.0134872385178467,0.0215927960614157,0.00671465827079878,0.0112740232905766,0.0530687161406378,0.126699531563081,0.312406449611405,0.115427129400181,0.0546100050372919,3252.29520459997,0.176680907471785,0.197206952317098,0.0453818279459056,0.111647833564699,0.318141845555316,0.0479076858683981,5 +"101",93,0.202104083299934,0.117766927247809,0.686257233090325,26.8692659297905,1.11837671331859,0.655434464078597,0.0168122120872044,0.993179948888741,0.000576266980542403,0.00906982258460069,0.554322021136194,0.00385908684672522,0.00101786946668437,0.233538051682836,0.245522452108869,0.0231625566954255,0.0097072872505794,0.000804097872493724,0.0114400581836827,0.0451140000021813,0.131196769002041,0.373547179239695,0.239563590796377,0.10379998240916,2951.66474581241,0.286164896334665,0.206952484792438,0.00676160635168976,0.0652323892774309,0.516433439371289,0.0209350724401005,6 +"102",93,0.198335815654353,0.0609802576848411,0.722403951958926,38.537478949258,1.38009297120203,0.620916429641498,0.0114887088813422,0.993946663990847,0,0.033652417313268,0.862715575354046,0.00469456167880952,0.000452651418758542,0.213821479624785,0.213792477475365,0.0153979977319245,0.0160249136496819,0.00161875578589975,0.00777284946241093,0.0408145166299171,0.136753194735804,0.304028674357373,0.499104778318239,0.259992714119069,2419.55422182712,0.199322748485595,0.0691210626575035,0.303913049186651,0.100174593323076,0.24842247957562,0.0226567462831934,7 +"103",93,0.295564771948525,0.12808284587051,0.809766498122002,33.7545408500049,1.22934075902494,0.615605393688712,0.0100369479687802,0.997979321645493,0.000623899181022007,0.182570757340428,0.999348269916863,0.0350173422094411,0.00070271013702691,0.47925644961208,0.478663728740432,0.0106082989612787,0.0163960203642134,0.00160024441974374,0.00577816143129108,0.0343827251765269,0.240860599647468,0.338961657987005,0.711134720726633,0.574999490588028,2026.82428487116,0.117394019072898,0.219293223980427,0.107466750405635,0.0630529707921699,0.467292400810293,0.022946795825532,8 +"104",93,0.194906488446921,0.114823833368715,0.664554411440483,31.7588884783834,1.24770029319349,0.612728402334099,0.0127920976045825,0.993265489872397,0,0.0377414641939809,0.736734911349566,0.0012128485685234,0.00710820185894916,0.117446545230141,0.117446545230141,0.0125704252902154,0.0192694039234903,0.00359053059080192,0.00670839624430681,0.0421387560488144,0.128361024194684,0.343156705979164,0.362536113474889,0.240085674584291,2865.57899224794,0.260363815243588,0.137731958115879,0.0554723406358183,0.126451058003043,0.272185548541587,0.0271501775448743,9 +"105",93,0.207903274551565,0.054413114399968,0.72084062949944,41.4940177373353,1.31934044279978,0.524133994300202,0.00832824168189737,0.99840705680412,0,0.00899267923346348,0.481175591989693,0.000479798440270904,0.00103214464558765,0.0160738495139183,0.0160738495139183,0.0127178399328175,0.0208640804875478,0.000175370712953244,0.00870205730610735,0.0424593484394259,0.095914851756683,0.257453270470194,0.533112921473185,0.32490296018671,2451.01567664412,0.162889212951654,0.0516325721127571,0.246061438204161,0.0661228972193669,0.166503172406361,0.00835898466779915,10 +"106",93,0.357287919828899,0.308725826110184,0.749850702125918,20.1369677666023,0.809333785627322,0.807314836430904,0.0193603004868757,0.980599017691264,0.0015669771558014,0.19053940937469,1,0.104513280593814,0.00235204988467927,1,0.998393786531631,0.0255442865229417,0.0146252326868644,0.00887162642068325,0.0124163393850558,0.0614574850155451,0.287860072188307,0.490783268443425,0.394284561611498,0.305735113196387,2503.1669211921,0.170964833657298,0.49851652688871,0.20656365854259,0.0323192529699322,0.843500557892318,0.0840706686144327,11 +"107",93,0.281592072169279,0.0758149387715503,0.715732499827413,26.9592217138391,1.1325711271596,0.713187339619472,0.00906851582670713,0.998888939150047,0,0.0225783356201823,0.303881234652579,0,0.00137911281932397,0.130862906019361,0.130862906019361,0.015213838916387,0.0279207920783734,0.00427419785819859,0.00899104285685852,0.0563998717098175,0.157299075804113,0.385825185709326,0.273184658670709,0.0815070081471094,2891.02309820567,0.414666510427013,0.187434201901386,0.080787492170767,0.0566295465756047,0.219791024866201,0.0176763879137104,12 +"108",93,0.245236059936412,0.116133353360694,0.789436405384344,30.8904359242778,1.20880234199826,0.69675965952366,0.0246789261971555,0.996420027258392,0,0.0158163743729339,0.613985609754861,0.00406273575925664,0,0.0489233226395722,0.0489233226395722,0.0148098612466472,0.0231575303036061,0.0014556914840251,0.00927075401159269,0.0486938370458711,0.168260407355263,0.36060543665122,0.298939431624574,0.102672768902885,2753.64620247038,0.0974344657604161,0.128572505806675,0.0424442543815778,0.0605994019631563,0.271895226428616,0.0237817256291227,13 +"109",93,0.23899858394482,0.0828953944106663,0.757990147878613,38.0909282326829,1.22199715309889,0.594841447700869,0.0138640893992518,0.991306180555677,0.00332425999639612,0.0724278060672835,0.615581752133463,0.00277021666366344,0.0104146120140258,0.0897230435255708,0.0886289832735923,0.0130789230219663,0.0294815519035804,0.00424112652524371,0.00847544065458041,0.0552770421053708,0.105467625335045,0.332528349980092,0.231360584488823,0.144640565817205,2943.16354900985,0.0982631212342712,0.0702198128844682,0.0834753816706482,0.00802372111437743,0.268608917902739,0.0217798742806344,14 +"110",93,0.300763124909333,0.0716964050070635,0.783038149961262,29.1810634192655,1.0386866038214,0.720453605765562,0.0206160718002479,0.989340037511646,0.00156851310094198,0.0825746020944698,0.608861894743683,0.0116122017754459,0.0055707089245258,0.246095529308781,0.24565037156013,0.0169384891649537,0.0213913080873286,0.00903728089294508,0.0105332613630924,0.0579003395083198,0.155838123895798,0.394009238270524,0.209387131640097,0.0569602010950334,2889.69766298701,0.261444660706375,0.23218115609669,0.0144185330907125,0.0629996059008274,0.616241008109882,0.0475390560350217,15 +"111",93,0.34151365069151,0.0491665316679995,0.816826368585398,30.8880249341262,1.10621915755011,0.65101149994004,0.017394116832527,0.990779283788277,0,0.0177617028078317,0.999130864292522,0.0154858390200837,0.00145904556146468,0.38051176681621,0.378166935908655,0.0134818486866687,0.0153239303849586,0.00464498335590385,0.00855118366056778,0.0420019460880989,0.173920976334216,0.346535230644126,0.541971478632056,0.384405267112563,2246.63652916793,0.23273822401414,0.0867737696988949,0.00194945702004701,0.0448853583849341,0.462901254094904,0.0324436312124142,16 +"112",93,0.280993499500372,0.120813137158718,0.761495782786569,32.4163111167112,1.29489443085505,0.712112134718341,0.00586571508773575,0.9944167240506,0,0.101215318693583,0.912519146694107,0.000833417984561836,0.00766567055085076,0.224654994408303,0.224654994408303,0.0059016080824155,0.01065485232695,0.0025379572955218,0.00471348285447956,0.0238079005593668,0.126278844823332,0.387846087192216,0.296398181433888,0.129804303168502,2886.45402513937,0.312851189614598,0.0941448524999812,0.0468108500088994,0.019308953656641,0.581494850491762,0.0228792836911967,17 +"113",93,0.190536706552213,0.0759908808691004,0.724135843689405,29.8168383348854,1.05244769962179,0.496177548974885,0.0203650540001834,0.982618905685735,0,0.0168062850300988,0.972988172885664,0.00243776313818989,0.0039268667104788,0.746215348445908,0.753033065792066,0.029007442294823,0.00670021930824815,0.000780949190675116,0.00765186195758422,0.0441404727513304,0.131585617497096,0.348508383724343,0.492475291515845,0.202957049609164,2316.77999258509,0.144923955176519,0.118871207224244,0.00233192200954235,0.0706611434673829,0.249262919568483,0.0254448938063798,18 +"114",93,0.305614508688359,0.0520167628418994,0.774911292292799,28.9482993272685,1.11360856806651,0.631636528175506,0.0177493763132056,0.997653423844826,0,0.013966491366367,0.950608920286662,0.0483414479806037,0.00416559890964222,0.22949139906094,0.22949139906094,0.016563094298163,0.0289100782994913,0.00964547034974176,0.0141147045750016,0.0692333475223977,0.139255463716238,0.329909620536573,0.401592030247556,0.156306531162067,2551.34128138871,0.210726015422843,0.177924393620095,0.147791072220582,0.0357837290168559,0.254622427310656,0.0268421320118916,19 +"115",93,0.209919673558234,0.0418632831893459,0.75492011647122,35.434304927554,1.3731215308552,0.554640810543938,0.00155882460463678,0.989564720648977,0,0.0234804232821945,1,0.000612039560540298,0,0.070580551104882,0.070580551104882,0.0167698855125231,0.0233263419479635,0.002806516762542,0.0115379885375168,0.0544407327605454,0.13120798881111,0.30904041942115,0.447865542683562,0.311084038148837,2645.14841503161,0.199703928769392,0.105840206806247,0.105914967587849,0.0554560104295486,0.211963432868441,0.0121796157538526,20 +"116",93,0.148527404359006,0.0735370368413913,0.75855067621449,48.3144283677042,1.35086248634857,0.377988923940397,0.0191766120033684,0.995557293845369,0,0.0188654130774809,0.981085824970757,0.00216050994337776,0.00132123333497141,0.144974878879174,0.145197727906676,0.0155494119612569,0.0147392109566737,0.00433240238879016,0.0091825910751761,0.0438036163818968,0.119041745825938,0.290967894461546,0.536846409397356,0.290966479749281,2410.83359688522,0.13086119499042,0.0227742207550583,0.108096394956878,0.0558872551852618,0.162484736061476,0.01494752070893,21 +"117",93,0.212594265918015,0.105471768063942,0.722092576508964,25.0804768651217,0.994884783960248,0.596572251039357,0.0395906661631182,0.973322462563253,0.00473639887966379,0.0618083777916475,0.772111310000699,0.0839009105502447,0.010317205870744,0.994163877186061,0.993257351338869,0.0332099577549881,0.00632917608721182,0.00110262955089305,0.0128012362155381,0.0534429996086311,0.164418036795134,0.341787072493731,0.507130200891719,0.299575055669909,2273.80553195807,0.21342141055181,0.286415844116089,0.0212141877694669,0.0506566434010037,0.48541761055615,0.0769080236470894,22 +"118",93,0.110875177800357,0.0768590697014691,0.591571686452387,29.6305949780305,1.2896414139776,0.494050424528852,0.00460449685272531,0.990516627220523,0,0.00726205593112215,0.618043212395744,0.00108051819274832,0.000105474659880026,0.017262926946927,0.017262926946927,0.0134458207345716,0.0111696268418683,0.000276169171539508,0.00921612684250863,0.0341077435904879,0.0676261010355116,0.204424686994194,0.580117464656245,0.274128395793374,2204.82197508841,0.307133206346435,0.226706356042425,0.000608113286560963,0.227810788658162,0.152377986388653,0.00985160184074844,23 +"119",93,0.238195041799245,0.0804916305847409,0.748059417067127,30.3841239119512,1.1284359367459,0.736464459486886,0.0187405957960115,0.980043155230729,0,0.0704462324391041,0.776291638417653,0.0199386846222722,0.00444634349446969,0.151516013805352,0.151814000680096,0.00786874567768972,0.0204360369264502,0.00613653516821143,0.00597353048294793,0.0404148482552993,0.13941543148033,0.36190090200219,0.299623899110967,0.159021987839739,2953.27667367576,0.168245145638346,0.159865987475656,0.0606675735875943,0.0406833900260823,0.25238872035838,0.0293637055853935,24 +"120",93,0.152306091088847,0.114880441433226,0.639879584209679,30.1470723169307,1.05365447127196,0.55617262495913,0.000880527813697108,0.994099227732843,0,0.00853491908006527,0.737801149700742,0,0.000440263906848554,0.00948474512866898,0.0096608506914084,0.00881770867174996,0.0110624011994384,0.000143810385858461,0.00719757699162312,0.0272214972486699,0.14467742046363,0.195255341999038,0.899313201294503,0.773093075364265,1347.00999934052,0.169001399459997,0.141544733531941,0.00292123578353753,0.190647309292884,0.129387360771861,0.00801930417231047,25 +"121",93,0.235859977510875,0.0658518956820932,0.678889118957238,29.1718122325931,1.22467309002559,0.650324950820096,0.0160099695826437,0.991375443277257,0,0.034736839516345,0.645098441836603,0.0032620476640205,0.00221763686782818,0.101163649112847,0.101163649112847,0.0143148952069309,0.0215511436280151,0.003310171908975,0.00969691242747317,0.0488731231713941,0.115715258492648,0.293652567268381,0.488040678790272,0.235974290896112,2491.97547874191,0.216812530634291,0.18086745944634,0.0170973565979797,0.077945141286693,0.371575117481981,0.0249809816588197,26 +"122",93,0.261684074349302,0.135586869581574,0.781243891433162,29.2917362515212,1.23209141498962,0.703750559051081,0.00647123749369372,0.991536209067851,0,0.0884905424864787,0.99952573806691,0.0156545743052628,0.000545546241991754,0.0703727776142445,0.0703727776142445,0.026371786082771,0.0306712456799233,0.00406064493266687,0.00876987050280511,0.0698735471981663,0.194365025601281,0.315862119310383,0.49857508667185,0.164434217480835,2368.32263752356,0.143563353446718,0.187757305874143,0.0133314955873155,0.0538484667670364,0.381371726699172,0.032943566190366,27 +"123",93,0.301463171452366,0.122215623713221,0.744166835652409,27.6857936308449,1.14043191125872,0.683488336704595,0.0188012904775077,0.982689639929407,0,0.142212386251901,0.876107344553875,0.0113579748458839,0.00770490786426584,0.199787084782018,0.232030173849447,0.0150199866170244,0.0237706464043293,0.0109769815158672,0.00842747824307029,0.0581950927802911,0.177621389049961,0.352273617107437,0.272066769095041,0.122815966170333,2947.99030203107,0.303267613958871,0.221292196026902,0.254797867309114,0.0317531813724541,0.326325219898965,0.0433401938065234,28 +"124",93,0.295837938926824,0.102734486600413,0.797645688970093,37.3867938773275,1.53683879325315,0.586362601676793,0.00374453963604773,0.997621555434806,0.00114715104237045,0.136147928510295,0.849204931951473,0.0472203939915062,0.000542538600956611,0.467872013615116,0.467872013615116,0.0152629026698588,0.0127683868849804,0.011251291069954,0.00629124932321222,0.0455738299480054,0.123441704014138,0.402318464298006,0.104615001888228,0.0739427692441766,3565.70326022517,0.16074924454627,0.114491526961695,0.223437424911488,0.00663294695464326,0.296518816645801,0.0211153461065217,29 +"125",93,0.0996034381523508,0.0260158058150964,0.675910231400787,29.283155374034,1.17411563526119,0.504865033209312,0.013433349895331,0.993790557962266,0,0.00926319412532061,0.996059078818477,0,0.0001801330840637,0.0170596580842872,0.0170596580842872,0.0100814052790762,0.0124243967464114,0.000163323726734777,0.00834423630073392,0.0310133620529563,0.0841312376445486,0.249315871263818,0.525254815876462,0.311601205499525,2352.36104450023,0.260767745634596,0.106751907344063,0.00168672467964148,0.172823579090744,0.161056359208071,0.00583908648343352,30 +"126",94,0.228108092566214,0.0850020714408204,0.761224506282591,32.0389901807998,1.23094526456505,0.578830921434415,0.0104344273622847,0.993944736527038,0,0.0278842675824991,0.63922454984183,0.000271634382618557,0.00272078507942083,0.0158043533921538,0.0159581541293285,0.0178300763726091,0.0268842141795279,0.000669632085790601,0.0122600643094173,0.0576439869473449,0.118374996106844,0.309086244977787,0.524391540400611,0.367683982262396,2398.59008344786,0.30246969384624,0.117576928909841,0.0613471224436896,0.0669246625451695,0.140226182181852,0.011663469565312,0 +"127",94,0.249066509826399,0.0400449134040227,0.791604774172441,32.3429965775663,1.44357664395373,0.673915293142952,0.0392920719745795,0.99640882227605,0,0.0238876802123149,0.540557123686108,0.169256495604897,0.00245370776730343,0.116760100935844,0.116387605021115,0.0192502966363127,0.0277467060866086,0.00629580491025673,0.00947903466289199,0.06277184229607,0.101802408594541,0.269663714029977,0.429257073127297,0.203368327653644,2790.07474729573,0.126084007296203,0.0954315424756564,0.0525317780912349,0.0445976999667386,0.202488611155394,0.0316005426176371,1 +"128",94,0.182419467997082,0.0316393591374729,0.790265446775377,33.9163932962185,1.36586836331927,0.60133635160664,0.00879369508245255,0.996183721296204,0,0.0181314341220593,0.989941081550145,0.0119665750733575,0,0.0429459989156334,0.0451569446463469,0.0193033295413405,0.0249671647605316,0.00203035090780881,0.00872743669898528,0.0550282819086662,0.0922645387429039,0.302281035684952,0.404133159566286,0.09499265217271,2758.52227682691,0.144909728560174,0.0620569916848293,0.0276531973912507,0.0456207234186541,0.138408023922564,0.0136555898906116,2 +"129",94,0.256761646501257,0.0879358257177413,0.819729480059266,31.2102368527104,1.19626946901484,0.633271392488929,0.0185274581528066,0.974534080313812,0,0.0304987101030358,0.588186129659377,0.0106830708906627,0.00349921887642266,0.060949530757984,0.0616332780321607,0.0139526126673333,0.03087597437484,0.00281524678500018,0.0124734604813716,0.0601172943085451,0.121514350022343,0.288183102698295,0.460993425462483,0.322110019973965,2654.85569038637,0.0821910806097434,0.170210992059246,0.0251137655574254,0.0414254322398361,0.131724220722361,0.0289432100804007,3 +"130",94,0.244435835807411,0.103789384674729,0.765768166171292,32.586370759046,1.12544235144049,0.520716585610281,0.00221159017533138,0.993837954434935,0,0.01083956485664,0.563273351756537,0,0,0.229401705124845,0.229401705124845,0.0146712151573199,0.0262063324199509,0.00911972186411684,0.0130067868562203,0.0630040562976079,0.128385492024137,0.313898475851474,0.260142896851025,0.103222580913419,2918.63892928364,0.0498374236417957,0.0917873028643904,0.00712029112383361,0.0395944547674891,0.35872037344628,0.00352550208982342,4 +"131",94,0.285819382594887,0.0554958291743038,0.665021344777015,28.1326036706016,1.1136178314735,0.704615514373961,0.0309960905371103,0.990320195274611,0,0.0359994282585002,0.260157015818412,0.00860569750085711,0.00101365646325588,0.179039480923095,0.177898243198052,0.0161698494830111,0.0237649118973723,0.00733720712416888,0.0113205717500847,0.058592540254637,0.115633776498123,0.291695960263105,0.172320645854326,0.0726282485403115,3178.37334334628,0.0789266359397105,0.171031224907273,0.0381232324980886,0.128987910537454,0.348085052970309,0.049014279270073,5 +"132",94,0.238652514721416,0.110529754284663,0.672706130398382,27.3111003945981,1.13240259007561,0.675783909816731,0.0165010136113997,0.991654070385136,0.001188440197965,0.0156141313696735,0.562190695959708,0.00210208597451997,0.00385284955037612,0.241965381406896,0.253327789839944,0.0268409902533062,0.011310797497834,0.000936376456489017,0.0120516383012052,0.0511398025088345,0.121925750058027,0.354211847092469,0.268276226920086,0.135056525134158,2828.57425147043,0.197602650571871,0.216686099933515,0.00670087471369307,0.0665610549076213,0.536097053793409,0.0234556553615515,6 +"133",94,0.224783407211215,0.0564994529317902,0.691037082491376,39.6083604944142,1.40848415510659,0.583049884610622,0.0258767680948391,0.991580863265019,0,0.0162319750861281,0.797776964296569,0.00792827957665324,0.000808767127997945,0.214278932022053,0.215806936088494,0.0148743112307592,0.0147301174698902,0.00302849243183471,0.00771177415557049,0.0403446952880546,0.108158743810025,0.283959580654763,0.448242751048483,0.265892264633007,2516.58650415447,0.06870403569669,0.0697433034958864,0.227117096953724,0.114424631199121,0.220903940288701,0.0201634955426952,7 +"134",94,0.27720947049456,0.0712272373222563,0.82103664863112,34.3643682592864,1.27005366605596,0.574879655921512,0.0101331147687288,0.995567819053254,0.000625204442669288,0.152942333030176,1,0.039761465680841,0.00140227346802208,0.462460982859556,0.46208975189049,0.0155815428880451,0.0194891271906376,0.0019604794729168,0.00728815090639172,0.0443193004579912,0.22777152284506,0.325329311808396,0.70518646011314,0.595508235338075,1995.0601089535,0.0712020974259789,0.218387251877092,0.107222520957667,0.0587503907147794,0.508565142764448,0.0281278788073418,8 +"135",94,0.19302828690439,0.0904021485243871,0.663085138498244,31.4259834948307,1.23566543758432,0.634571217219485,0.0127543413793283,0.993062714235355,0,0.026611600134712,0.70887648626031,0.00134315813382318,0.0221780232696724,0.104731339876753,0.104573546837343,0.0147756867824238,0.0193526367340865,0.00351524210430111,0.00760470576010191,0.0452482713809133,0.121188894250026,0.33359529782213,0.388254927062086,0.285697935290516,2748.94269918682,0.137027814152748,0.160223397045732,0.056022231659987,0.165765999709738,0.29827391202904,0.021777290329281,9 +"136",94,0.234936588711959,0.0453202458988982,0.739971518672454,40.2239906410971,1.26304348038119,0.529307822874793,0.0156773102951423,0.998351805634688,0,0.010084019643967,0.451551881288591,0.000285000839853343,0.00077371212688648,0.0117862122988121,0.0132276641780791,0.0144098670127018,0.0246610591292121,0.000129353705194182,0.0102640940258479,0.0494643738729559,0.085528760322743,0.236801991844488,0.529170975614573,0.289431239438628,2390.61158041512,0.136466873436238,0.0589161161980828,0.155377103329149,0.0648102847916963,0.158158258236638,0.0164180004203246,10 +"137",94,0.338320372260699,0.34302819562177,0.737830013543207,20.4905436390348,0.847451201455385,0.79597440908278,0.0180328041953556,0.989188478646434,0.00230245752321782,0.15049482560591,1,0.0986841321549435,0.0030143215759983,1,0.999427719884467,0.0266194947834234,0.0129912454118671,0.00776132334205683,0.00963315596638824,0.0570052195037355,0.257029637731135,0.458267267706453,0.393910339600432,0.260432243914928,2537.75243780723,0.148805609573273,0.477099520167609,0.176944941193205,0.039755876307278,0.847136102551103,0.0815589387588469,11 +"138",94,0.286657980071072,0.0799641464610413,0.667502261784962,27.0641430507928,1.14700143940584,0.718011462686977,0.00949297549301216,0.996621377287171,0,0.005896145354578,0.287038429975138,0.010204977469555,0,0.0955634838613755,0.0976792969322884,0.0157479127749588,0.0298590369835524,0.00368165766391124,0.00921138048888455,0.058499987911307,0.128291825482366,0.375548276634696,0.216564564647292,0.0766337061151781,3021.45650539327,0.315016907158613,0.179972576156569,0.0689684632338132,0.0556455763657614,0.186104266357655,0.0136477700974603,12 +"139",94,0.265517704194951,0.0914005142763497,0.796795359508869,33.1634526451247,1.23338969427299,0.630863199381726,0.041467486710204,0.980461226465736,0,0.0169710928382759,0.593191820021996,0.00467736217468916,0,0.0201244519391804,0.0201244519391804,0.0174957909915511,0.0280975787188347,0.00131179780916795,0.0118250200722918,0.0587301875918455,0.14189616064345,0.329051045587582,0.424179713792798,0.207572085035552,2535.45294481492,0.0776130741341712,0.0972322491762131,0.0548580632080143,0.0675258100985436,0.28687159681077,0.0393573267751677,13 +"140",94,0.241210368331769,0.0726250335388747,0.775258068685771,38.2909662574052,1.28133746820794,0.603798752654722,0.00657638454967322,0.992446699132108,0,0.0383064797793392,0.612628913111388,0.00489999154270267,0.00778837322407447,0.0788046307118966,0.0788046307118966,0.0138237303652024,0.0272735579712971,0.00412650299481765,0.00855500466480369,0.0537787959961208,0.0992797534660756,0.34056839098268,0.250432161943857,0.173265042637271,3106.74617741238,0.0711727141513354,0.0664351004207892,0.0802546686041196,0.0123211306756999,0.255507694537346,0.0204805804111596,14 +"141",94,0.29029050021082,0.0417802259824261,0.782190774693237,27.6858236255672,1.00908146650907,0.772399392272356,0.0152529792982592,0.984516438976179,0.00164577520446981,0.0636081632663144,0.681943567183195,0.0173551232541503,0.00475055142852446,0.210761233800984,0.210761233800984,0.0175206373604487,0.0242850870587052,0.00755566721906392,0.0121251922556684,0.0614865838938862,0.152495187378375,0.372183718089298,0.240536452854174,0.0721280355466057,2955.70028057512,0.059933972520533,0.217015046566281,0.0116700470394384,0.0698959228740295,0.528760734501314,0.025401394189125,15 +"142",94,0.335441035252817,0.0393183438907138,0.843038697465268,29.6360997149847,1.10826213909963,0.666314458219117,0.0126775097423338,0.987934047902214,0,0.0176384664862913,1,0.00337995286406931,0,0.337803911397172,0.338497549461442,0.0127506168111624,0.0174973452377332,0.00216521888641008,0.00822854332786459,0.0406417242631703,0.180302121621979,0.354811314488498,0.475310262711664,0.231984409747661,2329.22713200069,0.0793492038200565,0.0940938025513923,0,0.0556365182589832,0.566978300365246,0.0269809861498586,16 +"143",94,0.288223106824554,0.0960357343612764,0.77537343717106,32.7900441805699,1.30924966806125,0.719428152635618,0.00194890891913464,0.995882255530848,0,0.0718959921275355,0.911497945112293,0.00246883612598253,0.00373569520058346,0.193415860629803,0.192243661626805,0.00713007679285634,0.0102860032920015,0.00188596993650721,0.00584431000386088,0.0251463600252259,0.135069012405293,0.361859696745902,0.492805467684193,0.30408448809617,2407.37602477589,0.278224768380792,0.0728364385532553,0.0468129407387262,0.0429093882566665,0.514611907379259,0.0264621446379668,17 +"144",94,0.200288112522331,0.0569312407265945,0.762087057553214,31.2363155599081,1.12781801565977,0.515986105726253,0.0150352729446587,0.988769658058891,0,0.0113161158410083,0.978333928830788,0,0,0.707147396485396,0.709672702813959,0.034413369693435,0.0074210701574961,0.00068019780516402,0.00961092560635037,0.0521255632624455,0.122199295743946,0.312187319925605,0.458390452857699,0.188912308339221,2347.34795729383,0.217996953095977,0.115755274636052,0.000826809369940062,0.0495577543760397,0.270123772223665,0.0218417300917879,18 +"145",94,0.316372054945059,0.0311257758510323,0.809406355584831,30.0341342893308,1.13473364554215,0.639001208356969,0.0126599983441564,1,0,0.00901499555017038,0.982318349780093,0.0365716374475928,0.000944478255582427,0.204767882457101,0.203672532999653,0.016067504921632,0.027477478346313,0.00842331274277672,0.012338945196262,0.0643072412069838,0.127064507553388,0.313039178248991,0.431740448950754,0.18495805304599,2482.51646360873,0.068953235495235,0.144242798527405,0.154122240487347,0.0305500472067772,0.246750956350388,0.0239595831822446,19 +"146",94,0.202175377454994,0.0380961722104769,0.747450581043346,36.4806421689435,1.41431436421661,0.572335291874779,0.0044647988061275,0.99364190340851,0,0.0316254707297385,1,0,0.000888730895699075,0.0704202421064859,0.0692697164545833,0.0182205874957093,0.0257034356873603,0.00322115638338428,0.0124109683564321,0.0595561479228861,0.123016394415976,0.309494653262238,0.522043082720514,0.403402505521986,2511.08866694711,0.16579192873371,0.116192205115184,0.0865226006256082,0.0759097526351784,0.230627735531952,0.00773531152145743,20 +"147",94,0.180603252603886,0.0817932312596816,0.779395270657661,51.1751982530852,1.43616319241797,0.395417930142059,0.0137438286887154,0.994790245429191,0,0.00466816347132247,0.986431707136521,0.00144839088661192,0.000806452993098198,0.118220727127429,0.11723363056762,0.0136209156573966,0.011639828843195,0.00325385802046913,0.00787369653660703,0.0363882990576677,0.095268273261718,0.291263401715751,0.513482104655774,0.211319216613009,2332.05812611159,0.104591449574928,0.0249822784387585,0.0893893309078656,0.0460192561774708,0.143896322801871,0.0162525512138246,21 +"148",94,0.230320058104931,0.0522621123155417,0.787980661114326,24.650919172858,0.976578330714411,0.578576619219099,0.0634777880103322,0.974389658456648,0.00120047356429612,0.0184359586311203,0.778377066528949,0.0368022309958887,0.00277708262954584,0.997476247161652,0.997064963083403,0.0340264788526255,0.00603177257259634,0.000295737128201492,0.0158424290312991,0.0561964175847224,0.156612478673929,0.348063138075298,0.631686964154509,0.429325121878931,2022.36572920801,0.131150094297099,0.251116614280689,0.0125785739153572,0.0795315031959262,0.438185934959908,0.0718698748846041,22 +"149",94,0.0959648252128089,0.0861647165098946,0.60774835395098,30.1139765363586,1.30164200672767,0.458531442176566,0.00681696253277817,0.989934257573373,0,0.00484443946865642,0.694242449980336,0,0,0.00809919928528001,0.00809919928528001,0.0124672754108196,0.0121319212208393,0.000218473705284464,0.0096434011836622,0.0344610715206056,0.0610705119207934,0.200061833035389,0.516692717098123,0.272422036620792,2312.59710850068,0.29522081944587,0.215503392320583,0.000705570065623773,0.228489742332315,0.132574779448321,0.00774627969056269,23 +"150",94,0.226135837885473,0.0693684031158275,0.738995824943907,30.5873473433844,1.13821969963943,0.69350843652215,0.0186109707462732,0.983606383669924,0,0.0553125427368783,0.76147183881598,0.0226251249183476,0.00176892267271469,0.118783576621937,0.118783576621937,0.0103682580136834,0.0266097917313741,0.00578363502219679,0.00705301086247515,0.0498146956297295,0.135338696387302,0.351219420982459,0.339495633069721,0.136461870745051,2695.5927007851,0.0637579240026608,0.145960083526571,0.048165870331435,0.0381039655003542,0.2526615478153,0.0365651458632839,24 +"151",94,0.202639563575253,0.14460177974948,0.639565501820327,30.8435104152514,1.08614557363234,0.62708974699019,0.0115341204357909,0.996813335891056,0,0.00293205289059742,0.758519368182178,0,0.000510068315906005,0.00854280436556348,0.00854280436556348,0.0118294944459009,0.0123520589171418,0.000155719372746432,0.00979200332241088,0.0341292760582,0.109368318468939,0.221538502143282,0.720708048346943,0.451045495126277,1882.83968218452,0.135721125204783,0.145070196968968,0.0117519943600852,0.186116354890184,0.147095012161033,0.0158428395597261,25 +"152",94,0.204871372333977,0.0395468878566044,0.702036500929396,29.279486083317,1.22944274258745,0.627549735626309,0.0210477264718934,0.998141338085189,0,0.0159677975058934,0.594094082509428,0.00100453529415906,0.00516070379328956,0.0850401839618293,0.0850401839618293,0.0162422011518403,0.0211634180333618,0.00228031039484578,0.0106054951331998,0.0502914247132477,0.105914658853317,0.284572495613441,0.486705361926596,0.22048356153824,2519.57736477049,0.0833876222883598,0.151364419438886,0.0180800297237554,0.0671816523007554,0.364960396629737,0.0234214742296785,26 +"153",94,0.256814697756132,0.109740257567998,0.787213371211087,28.5702156729812,1.21165907013249,0.680560689487281,0.00492442716404796,0.983500032023943,0,0.0761544249183519,0.99914333437898,0.0151674638160163,0.000544615240736177,0.0640642392326029,0.0640642392326029,0.0294722496170737,0.0325476861862318,0.00322400810840109,0.00946180102876214,0.0747057449404687,0.178591229579837,0.306262320274849,0.466632313827351,0.134885842739753,2452.42759662583,0.136789819418189,0.212563603253039,0.0180311526543124,0.0444891254345606,0.421884116668965,0.0317195655095857,27 +"154",94,0.285966838227491,0.103193737626487,0.767233981737783,28.1336590653076,1.16010506829883,0.649278794276458,0.0174131693673763,0.983663407972881,0,0.13173138295466,0.888838365950566,0.0101339693779228,0.00603017530145416,0.15398993300932,0.18142544379339,0.0139891989824876,0.0230951751623613,0.00560094369669966,0.00757392848981328,0.0502592463313618,0.146699108531012,0.34278012882,0.248479413721345,0.111085402016105,3071.20872486559,0.126104564625412,0.217671195158589,0.244385937371208,0.030942931091692,0.302787915884772,0.0418997958138248,28 +"155",94,0.287326509586222,0.0750828912453476,0.82318332644994,39.7582419036986,1.60513465882838,0.564358934126494,0.0027372869818951,0.998198218216943,0.000601745780554402,0.11749119853635,0.827458092901014,0.0370437591942955,0.000601799976424699,0.434523614001351,0.434523614001351,0.0192175180897774,0.0152865784028933,0.00978483376929522,0.00792257747503681,0.0522115077370027,0.137108280750303,0.374399693575954,0.222544108282852,0.164435277861426,3085.27838979485,0.0783575707747828,0.0999155864039351,0.250184579978685,0.0100301084287913,0.279987873672721,0.0177706145865176,29 +"156",94,0.108060834171733,0.0331021272061651,0.667738034098521,28.3630769713551,1.14294324532002,0.487374033990431,0.010856663831909,0.999833948606726,0,0.0003321027865482,0.929155840672093,0,0,0.016352075794214,0.016352075794214,0.0119483252593852,0.0135251994634805,0.000450142672869559,0.0100582251471598,0.0359818925428951,0.0768475621271785,0.245412311850484,0.514152621441583,0.242948100796745,2252.3540860415,0.16847235476992,0.125267302662183,0.000830256966370513,0.143259497435989,0.16006777709686,0.00666488373405323,30 +"157",95,0.218071653845789,0.0462002428319053,0.757449373009998,33.5273954051812,1.27090763794404,0.521649721801357,0.00854312804082909,0.995314998492194,0,0.00783273324309288,0.816899487904291,0.00112559518651612,0.000143435619980816,0.0107692077931374,0.010901698526453,0.0158275623626954,0.0256627981466531,0.000364196682388578,0.0124927766467909,0.0543473338385279,0.109286020264791,0.295013886740713,0.507586368994763,0.305353118344713,2375.55220458822,0.203197794050384,0.106719235552697,0.0672787272769153,0.0716633615263968,0.135975413193436,0.0105767177897508,0 +"158",95,0.244864596641898,0.0274246706584747,0.807937095749467,34.2545137182146,1.52497037647953,0.679356888791781,0.0305638652575783,0.99532150012243,0.000660359912478918,0.0201896666060117,0.546927187791162,0.157517241818942,0.00155368904144397,0.0712030562186865,0.0707124740693102,0.0188568416203301,0.0288644831680881,0.00323414043075608,0.0088160922481963,0.0597715574673706,0.0972816791459347,0.25809398395091,0.504857989315785,0.222982206091389,2392.68902308672,0.0927798503671502,0.0796185591416399,0.0441667838453261,0.0414400041469769,0.228455698293181,0.0319995943865858,1 +"159",95,0.18217536672754,0.040270307671555,0.816010632960103,34.6973449853189,1.4020958002144,0.602626545129878,0.0326443695061785,0.997392333296765,0,0.0215295011115438,0.98407354044786,0.0259918507131833,0,0.0251661205613043,0.0251661205613043,0.0179267723832467,0.0276061775166608,0.00186189043406048,0.00859020938168978,0.0559850497156578,0.0818631368248628,0.279043863989048,0.463134640848542,0.103816898749761,2734.67426230865,0.146167458100231,0.0563672005922555,0.0184606691170145,0.0490458381581563,0.149083917651259,0.0187706521023296,2 +"160",95,0.25269459263173,0.0692983054270979,0.789914911348625,32.7472751553316,1.24225204035301,0.608349241291306,0.0108587343363052,0.996056280635832,0,0.0193697967461802,0.612500008825183,0.00540695998538024,0.000598208954976175,0.0480906671461132,0.0476770354328544,0.0130098560727311,0.0293512555632652,0.00217160571929178,0.011924203784496,0.056456921139784,0.0882082229638388,0.2789889087375,0.455170849585363,0.29436651290946,2679.44615139045,0.0760853889614729,0.153735288444298,0.0212571544891474,0.0415870187930415,0.14427580760251,0.0138971751575138,3 +"161",95,0.245195549914687,0.113150053435781,0.734059647855389,31.7845452575201,1.11792073952645,0.597430022444477,0.00853190417138831,0.997273098019531,0,0.0113755470248055,0.594774905825963,0.00067619697027847,0.00160326792300745,0.225145049531314,0.225145049531314,0.0188764531224686,0.032345942444155,0.00879240120863049,0.0182681509437951,0.0782829477190492,0.141303769870944,0.326894873855576,0.322297303167734,0.137750362496413,2695.8845155448,0.0613222044371128,0.0841698768250081,0.00588664615944012,0.0743873605910358,0.348408765897362,0.0122625047981113,4 +"162",95,0.271742348460238,0.0515059116455503,0.63155980534587,28.9642340071892,1.12073971617526,0.692012526016392,0.0219002404744831,0.98672849017067,0,0.0289340720738935,0.254028909784959,0.00717977554937018,0.00114982838400104,0.147612373751532,0.146503519311709,0.0170900066308255,0.0252317949663192,0.0053839653801474,0.014137751061434,0.0618435180387262,0.106607101138027,0.299419259617705,0.204848593602762,0.0740444287170221,3130.17936112673,0.0514462009089187,0.193900573532453,0.0323914281349293,0.112768061261069,0.363801092336126,0.0373564962903161,5 +"163",95,0.232077846894939,0.0940815119498518,0.660047838632378,27.1493529926326,1.08943964732567,0.659822750630107,0.0213871657934894,0.995760087672539,0,0.0129358667195004,0.559845939247067,0.00318165698791838,0.00263214256786615,0.214433927234408,0.213461247477153,0.0279180626854841,0.0112755912490359,0.00067183757258743,0.0136906389004759,0.0535561304075832,0.119566365520695,0.339842892311949,0.330732999562072,0.159614431604434,2682.4244320798,0.1264648012326,0.213730053222122,0.00672105462367212,0.0847126994823968,0.443891849897702,0.028325312418085,6 +"164",95,0.204072878227648,0.0301890868908802,0.709652123844732,39.3305570471839,1.34289525335253,0.565272066252732,0.0425332080540951,0.982864679867396,0.000659110317282988,0.0165195584204353,0.790010572002738,0.00753035426812883,0.0035326875962114,0.201589741844941,0.200272133279685,0.0154480837563623,0.0158184000592245,0.00239336522173242,0.010016125683512,0.0436759747208312,0.0981227945117235,0.272309068356181,0.455903291889546,0.284294486118417,2446.40610052742,0.083410558520023,0.0685721223559542,0.205274965595653,0.123324073016386,0.213711783426071,0.0534813881553116,7 +"165",95,0.249538057642654,0.0503398208606301,0.840424830435481,33.8508733847372,1.16437036823466,0.520885389102102,0.0899874796514136,0.988245446941463,0,0.146659008393478,0.998581027758961,0.0396571972189489,0.00521814497812742,0.459403050133056,0.458853325305474,0.0322489586194086,0.0204153562658179,0.00621657576408792,0.0143681704404597,0.073249061089774,0.186873908089463,0.333367626485681,0.643896163295037,0.545372681372726,2098.09686829251,0.0610279120492073,0.228130870954168,0.114586429448063,0.0586137019505641,0.537005964443597,0.0858486688952413,8 +"166",95,0.191951811751492,0.1180681942571,0.673658084356825,31.874794843307,1.19863856744039,0.607882973184253,0.00944938753886437,0.991757353159673,0,0.0246229907153613,0.698822444546953,0.00110777492732861,0.0211368267878487,0.0969023427556185,0.096706979659225,0.0155951525266003,0.0217117766096709,0.00296171397675716,0.00977045497765097,0.0500390980906794,0.104520135060486,0.336038414473002,0.320085193924891,0.219793175339183,2898.58055518974,0.0988135450442126,0.180081983019202,0.051807141869052,0.140793972851538,0.246737469298474,0.0188019893308954,9 +"167",95,0.219589016077765,0.0690144142930154,0.779485508432623,43.1844407074828,1.35281146509702,0.508424331903022,0.0115163109945399,0.996102599969908,0,0.0106894330727075,0.418521781457092,0.00120231237810042,0.000214020929346784,0.0119424389156356,0.0110094003693766,0.0170035292051436,0.0234213504260556,0.000216638422260366,0.0121608406227515,0.052802358676211,0.0808477794404634,0.231520108643829,0.52160898972077,0.306972678171731,2355.0053079689,0.14284249972415,0.0500895300759481,0.133034194103838,0.0844710318793216,0.148859540346103,0.0130635342600394,10 +"168",95,0.347096056798676,0.291577265880301,0.738585127942651,20.5237339571475,0.835338647317919,0.786689447698794,0.0104805415551976,0.991413314557239,0.00147954360417434,0.139820241916681,1,0.101591163246081,0.0041030018367975,0.991089648629597,0.991775060273475,0.0279800219192968,0.0138917299842424,0.00796342937845194,0.0122903416747436,0.0621255229567346,0.251993922333235,0.472644305216059,0.401312700761482,0.282799494887208,2537.83539253314,0.0700545415851312,0.483729023350638,0.182458468713112,0.0459238694797783,0.846085481354392,0.0988909149548349,11 +"169",95,0.251181702808351,0.0627872834446071,0.681816979610723,26.2023739717611,1.1183162816284,0.684521800899568,0.00390191156389943,0.993754271424165,0,0.00520805199772982,0.285562894025782,0,0.000779612285649791,0.0808605026377472,0.0814113809648957,0.015596627619374,0.0308946268892549,0.00301594985821969,0.0111506575935935,0.0606578619604421,0.117106739934614,0.358252971762599,0.248539572945581,0.0828904624149315,2888.39054585896,0.203406204929652,0.170859704482748,0.0485582314558554,0.0496637756781043,0.196380149107567,0.00509545225533996,12 +"170",95,0.24782783273624,0.116888358518669,0.809902508365652,33.7014133655776,1.26883589991019,0.601633166852241,0.0316124715646911,0.987410260874715,0,0.0113669983625551,0.537751163851468,0.00806017832571054,0.00114884603082294,0.00953201773857682,0.00953201773857682,0.0150256749446738,0.0265881029836568,8.18767746202173e-05,0.0111798281841267,0.0528754828870775,0.114668149095987,0.316640735774589,0.313068082990885,0.136922250414844,2790.68891716649,0.0936919454011823,0.0898581689648746,0.068697679598785,0.0394472283905034,0.227981011375897,0.0185027395824316,13 +"171",95,0.245831673837706,0.0761000713381622,0.807843258379435,38.8054601351771,1.30005977001406,0.553675404777493,0.00471633362124998,0.992747557880088,0,0.0222482566739196,0.612173210885712,0.00210798241016646,0.00688509995542796,0.0662239185785725,0.0662239185785725,0.00994776318745324,0.0207448020229845,0.00310978787021767,0.00789109981447051,0.0416934528951259,0.0914075270358848,0.349745776932471,0.243903518397936,0.141840465292967,2889.85280756514,0.105955110864986,0.0560870700541993,0.0658847259601418,0.0108582004667612,0.189007785185568,0.0148977201773971,14 +"172",95,0.28389295376219,0.0648249034111771,0.754108000629399,29.3157644182086,1.07587691132225,0.771167045439755,0.0148234636064949,0.990649961945991,0.002643070310249,0.0703211546876564,0.588129643851337,0.0211431880115497,0.00702650983644352,0.174376654607631,0.174211938258339,0.0168680024565321,0.0235100091404262,0.00686857332518082,0.0122407129238535,0.0594872978459927,0.141213305968969,0.336440122647534,0.303184306091613,0.0419471336574745,2702.31345693054,0.0639591856504392,0.192984473686996,0.00427060471469831,0.0710635077196336,0.48938885733255,0.035387657196022,15 +"173",95,0.341386045782766,0.0661239389878248,0.806544307170448,30.0158117875684,1.11349456948,0.655363502253475,0.00959638919067937,0.985630533549205,0.00191503267955609,0.0264479178141263,0.816921249560722,0.0149676321150929,0.0015928275251731,0.315513165161992,0.316415574512475,0.014950209117504,0.0145670070818251,0.0032114066110147,0.0108257283315919,0.0435543511419357,0.14701382629789,0.354472187467661,0.300772898880708,0.0991203846274949,2684.23604918397,0.0497553061961365,0.114754500006625,0.00359443189149378,0.0299022342748697,0.549483382990945,0.0359964574130172,16 +"174",95,0.291393587975174,0.0843734141565465,0.777404991332007,32.6922083125818,1.30000115676164,0.783990780793377,0.00406292624995309,0.994041801171418,0,0.0399142819371838,0.99952614249903,0.00162629949775384,0.00278454566268569,0.18143037836934,0.181963730656571,0.00729472111506633,0.0103113414787271,0.000481685328844664,0.00622270219030542,0.0243104501129435,0.131381594177528,0.379976703761374,0.588744307842272,0.386112597284086,2084.24739850791,0.355265064974949,0.0691060571415246,0.0445562866958258,0.029862069407386,0.395265917950754,0.0193938177455122,17 +"175",95,0.203976959233712,0.0496513890308547,0.767901697166556,30.1768083635565,1.15259172969975,0.494230267091372,0.0179484983582544,0.995225164804049,0,0.00474997730942287,0.99819077651696,0,0.00180922348303991,0.631729083830822,0.672484242985783,0.0372988364159254,0.0077640913343008,0.000809059315030053,0.00986274982050893,0.0557347368857651,0.113327381067912,0.308888033137298,0.425772773990658,0.161775488738411,2420.64356761169,0.163201872730153,0.108574239666735,0.00147834937129621,0.0677869278555253,0.24784062869076,0.0161067446291253,18 +"176",95,0.301228062788171,0.0439138005239678,0.79592416732206,29.9784267370769,1.15921860635751,0.674723271694502,0.0051728334323503,0.993939760402958,0,0.0141947681062526,0.963831357140926,0.0278936051518574,0.000544649225804064,0.153338717529781,0.152483287830632,0.0171930641768315,0.0291450290782913,0.00505978977571831,0.0146477986226581,0.0660456816534993,0.118079978401546,0.310926958168583,0.431221922260514,0.18427893072959,2378.3066756923,0.0605121195552348,0.143112902570051,0.147437060772398,0.0368822161799099,0.235277334350595,0.0232303362367558,19 +"177",95,0.209391278063652,0.0529059326819913,0.728097297477513,37.6909358908934,1.45314234606265,0.553871525640749,0.00809052768558865,0.997203135248438,0,0.0211553558388309,1,0,0.000348670535154498,0.0533153672029161,0.0533153672029161,0.0187900908578823,0.0270235817698165,0.00191617171848186,0.0141789873172952,0.0619088316634759,0.108811915340519,0.288934865112983,0.54430488892612,0.391004246093344,2419.18045661228,0.140985859531452,0.0908278763752073,0.0820030858527666,0.0906582618269731,0.231241342296817,0.00587459477241411,20 +"178",95,0.168167983632889,0.0581374912954017,0.774381882613176,52.0940390773454,1.57981427836218,0.375799999249769,0.00917531353535746,0.997714961303872,0,0.00610343279504344,0.908778293014682,0.00343567601901998,0.00083950744262873,0.0771477514743133,0.076918755094208,0.0120928446271581,0.0114452852898835,0.00200008621740928,0.00702687012451006,0.032565086258961,0.0797940607367736,0.285081065610144,0.455255905742532,0.211904373353543,2527.75916082228,0.135068127226469,0.0197425924250414,0.0877833839873701,0.0608554388523931,0.136592599260433,0.0123711952729707,21 +"179",95,0.206062334045331,0.0697734465603336,0.757055799068283,26.4340232391827,1.06580461320734,0.579881741961612,0.03760153199844,0.984323647938526,0,0.00609657542417692,0.714613886002479,0.0229958620211859,0.00331636105783478,0.992776730141276,0.991495604530589,0.0321377182662176,0.00628404047916019,0.000590228845937974,0.016720844720357,0.0557328323116727,0.155771802470051,0.322255225816882,0.775351228920929,0.544246198393407,1744.71693652397,0.0759466816075565,0.201329082067643,0.0152052051960621,0.0759597739838223,0.450757881449636,0.0516853033094925,22 +"180",95,0.103542501105136,0.0804306755258132,0.577661157345496,30.7336621403281,1.32349133723641,0.447081579284239,0.00766576660260503,0.986763158286111,0,0.00301896655238964,0.580562809169751,0.000269738052538819,0,0.00911257714630215,0.00911257714630215,0.0129928517896732,0.0130016149416789,8.95590184242885e-05,0.011112515512557,0.0371965412623334,0.0532609620189209,0.195825462580433,0.526282061520972,0.295080424969043,2251.47941276846,0.284259871595276,0.207601066942321,0.00183606893507104,0.255696398937299,0.135079251097462,0.00633451467657473,23 +"181",95,0.221292017485842,0.0881538978020016,0.737801405441509,32.1490027229421,1.19957135549032,0.688210265914438,0.0265048704865065,0.983024493420463,0,0.0422802033100416,0.775901818112727,0.0262646073762794,0.00256198736199435,0.0975249147638114,0.098146926767671,0.0109170148398924,0.0293244732934742,0.00408420992883051,0.00830611516798918,0.0526318132301863,0.126240078316823,0.345213511169996,0.357281501043713,0.165684910998971,2600.92600472156,0.0578218274523593,0.126574146236327,0.0481463781682708,0.0588681184210292,0.241069005325245,0.0359213370377246,24 +"182",95,0.172619037833781,0.06804768256667,0.645474134255099,30.8846976965976,1.09330408498591,0.516862929891758,0.0112558714778824,0.992266902323959,0,0.00311313871096112,0.675939743163773,0.00113575100644918,0.000324500287556908,0.00584100517602434,0.00584100517602434,0.0112771878130983,0.0118647985969279,0.000202003203305539,0.00975107070702455,0.0330950603203563,0.0853050664818633,0.231437644370171,0.630326968277582,0.404778251416379,2032.19531064753,0.112836985144502,0.161347374745706,0.0130169642732698,0.118134735012523,0.125710849813309,0.00377886980449008,25 +"183",95,0.197931993257144,0.0791838464307747,0.72893311919517,30.3780077757163,1.27205188628787,0.625962042567772,0.0195971791357343,0.991372114174575,0,0.00915144529590487,0.56802231720404,0.00157549512475269,0.00106264312686109,0.0725233449058278,0.0725233449058278,0.0152252355335788,0.0217346456489569,0.00336567722454839,0.0108793475813188,0.0512049059884029,0.0906871542989712,0.308109868046872,0.358805266386359,0.164424116405135,2831.60249376912,0.0966884752576558,0.140154656564159,0.0113438698864535,0.0569344258696252,0.302748997166663,0.0330028808727245,26 +"184",95,0.267475619417841,0.083928403356895,0.807419560210008,29.6567099818642,1.25449681113189,0.664964610899784,0.0127152501959697,0.981511548039607,0,0.0651425932774501,1,0.0155151966364953,0.00384872207657943,0.0567003945243209,0.0561388159652426,0.0255101290061304,0.0357936895830176,0.0021416886902045,0.0126149558734372,0.0760604631527897,0.156063864731146,0.281907209369235,0.467511436349801,0.143481538887578,2371.88269616988,0.0884272130924433,0.176921531516025,0.0150060834479522,0.0471621592421184,0.383036107789807,0.0412839294548049,27 +"185",95,0.262624436249764,0.0936700876152443,0.778668821952757,27.7858755056553,1.15104964127244,0.634291442068714,0.00960132260800539,0.994991379459444,0,0.102272736165904,0.870230626050565,0.00841744412190668,0.00352326231431959,0.125644534422339,0.147233361548473,0.0164003867421872,0.0301150590070172,0.00378713574880598,0.00911074573567069,0.059413327233681,0.139816565697882,0.347579039286367,0.231142622999301,0.0847573132917681,2913.323835476,0.0882792740897306,0.216636815518622,0.240933054889077,0.0267261046596453,0.309920860048966,0.0324053650887995,28 +"186",95,0.326708878108037,0.0484474200176312,0.807125320901761,43.050130986718,1.70351760066952,0.614687689038137,0.00141487040381476,0.996786610568369,0,0.0944230437044794,0.815249798208063,0.0321275169019691,0,0.406506386587427,0.406506386587427,0.0235338850712714,0.014809530079384,0.00969735257861241,0.0105526831082418,0.0585934508375097,0.130979486540876,0.376576777349833,0.153709918354476,0.110743308594105,3166.34786514389,0.079966311109703,0.0852840563509771,0.252113103326087,0.00690596623220732,0.292582239960715,0.0117434368639434,29 +"187",95,0.149195764105916,0.0296567911068748,0.635476068429277,32.2492265611082,1.24035455648631,0.47956548714384,0.0128884826263619,0.999690359540535,0,0.00775292982127352,0.948808523254671,0,0.000169652720351758,0.0168798909626039,0.0168798909626039,0.0144430697559641,0.0168774498204043,0.000415439553998866,0.0127448307250894,0.0444807898554566,0.072946386519692,0.230591785259634,0.676948076848065,0.421258955613913,1972.27057092427,0.20381983517829,0.10614872498051,0.0019619875293444,0.213029948131677,0.197854887053898,0.00240542473864463,30 +"188",96,0.232506516375013,0.0403808057453465,0.766989739919308,35.0175935473022,1.32482956228123,0.531563274319195,0.0151537068001122,0.998600256474357,0,0.00779900541846841,0.842881305553882,0.000536969242715949,0.000145331892865512,0.0139517300205031,0.0157286243357569,0.0172816928693669,0.0259194939781118,0.000449113694696686,0.0118044241685763,0.0554547247107517,0.0919062336891649,0.301067364830202,0.489898101583944,0.286733968971015,2463.12656816134,0.23942760759206,0.0875957183563086,0.0733050705926106,0.079151632635316,0.147384228908956,0.0159334292055596,0 +"189",96,0.246851555455112,0.0278509972277268,0.823114858573575,35.4270284529611,1.59897569759557,0.656697766544535,0.0119449675248438,0.994923366818272,0.0003397595167024,0.0196499459923511,0.558231769946285,0.163094133070093,0,0.0374717684216163,0.0385152205860615,0.020493913023503,0.0256327978540867,0.00150882043618187,0.00912251814476848,0.05675804945854,0.0887259035505066,0.259433535208868,0.515893400658574,0.20791825244932,2470.48392680178,0.0738214088613327,0.0757457308040651,0.0300702856329331,0.0690876767967555,0.221060785392149,0.0254964784257575,1 +"190",96,0.173071053278915,0.029278891511057,0.805744139754311,35.894606773721,1.42974790204606,0.544360980969919,0.00992540431427725,0.99840368609704,0,0.016747894413572,0.996220212657576,0.0115995030809352,0.00243351551951019,0.0146721113085166,0.0146721113085166,0.0190669301425023,0.0229480088271763,0.000898828968829486,0.00909752362196991,0.052011291560478,0.0673837759744295,0.26494373356708,0.453133540027316,0.121813017143081,2826.08665898737,0.111615959238762,0.0506563391825516,0.0222825348895886,0.0418272523035084,0.0999658861195781,0.0111080371737566,2 +"191",96,0.215504981418143,0.110823033303786,0.777300262043327,34.48682155328,1.26576017178927,0.604574197214913,0.00494733959223586,0.998635488086578,0,0.0123663658051054,0.5098689546802,0.010576635803784,0.00239598736341507,0.0386481149541235,0.0390897252914506,0.0124530520832084,0.0225856583309842,0.001557646017562,0.011450453277908,0.0480468097096626,0.091764981941999,0.273639630772989,0.465830699803821,0.328836065383909,2629.26091651143,0.0650136491574668,0.135219290969444,0.0179552052876191,0.0581017891608002,0.148049282210822,0.0133527716119663,3 +"192",96,0.244008636168604,0.139416150560051,0.753688649837819,33.0949627996359,1.15875665868162,0.541666257487268,0.00824205583307937,0.9834521091027,0,0.00493740829455982,0.610184595945305,0.00240465186660599,0,0.174068598713158,0.174068598713158,0.0192552525029373,0.030252265381064,0.00593550653088308,0.0173854269359941,0.0728284513508784,0.119159480134011,0.316883472861262,0.310465609344436,0.164160250449959,2866.153776764,0.108230347998222,0.073480932510337,0.00823454420144887,0.0708594226876316,0.299418374283793,0.00690186840307361,4 +"193",96,0.269002041641217,0.0522772281314366,0.644159463051292,30.9027377388719,1.19914638683563,0.66321789338997,0.0272662643042629,0.994138845816223,0,0.0166077517966502,0.23724848245763,0.0056952838530507,0.00074778900066588,0.0964498443355069,0.0925480827825891,0.0171785326795968,0.0219760276152332,0.00218218917234547,0.0153176912658573,0.0566544407330327,0.098661311265347,0.310171344571403,0.125488400932925,0.0284205598432561,3328.03324241754,0.0811457127910315,0.177780867349712,0.0213245255340306,0.111856892481377,0.371445758052001,0.0304572997272159,5 +"194",96,0.189547902747279,0.0840610929748583,0.656781925871081,26.7638294586512,1.08909593249386,0.613206215131715,0.0142186242943655,0.995659140616189,0.000973101230085433,0.0117948810566378,0.517859436047558,0.00267602838273494,0.00257203492866431,0.190291362854616,0.193050694132761,0.0284147885019908,0.0106120440158703,0.000756174412904976,0.0131994006822493,0.0529824076130154,0.112063686548222,0.31235585267797,0.434770251174335,0.26322460502323,2519.97180043104,0.110820718031525,0.213516826915917,0.00324771103083832,0.0708334156104028,0.275063714533728,0.0150266340873254,6 +"195",96,0.181753412179849,0.0459500249476475,0.704730308144532,37.7567677316708,1.31425576152038,0.533393329085105,0.0359630988346815,0.984243582103198,0,0.0196865986352607,0.758610199957578,0.00758057094889221,0.000934688122251078,0.16060803625289,0.16060803625289,0.0172768213511527,0.0141609927176462,0.00263851658016458,0.0107898259965847,0.0448661566455482,0.093051635508242,0.278628708602853,0.495146693891236,0.303744759805684,2408.16381737459,0.0739448201750247,0.0679926956532078,0.159493456773156,0.121228447724858,0.190958661197413,0.0348813124185003,7 +"196",96,0.232210910546316,0.126416375537963,0.853019112290504,33.3624626866831,1.11495047975045,0.455728953054155,0.0166087073603618,0.99858023490048,0,0.115112319999925,0.996880451774798,0.03658391673424,0.00319083781829175,0.435069752029644,0.436153017075556,0.0340288754277379,0.0195254800662629,0.00489411811126716,0.0163431901511216,0.0747916637563896,0.154310254536259,0.328085841356461,0.636971633654227,0.470438655425672,2088.88072896379,0.111559396425882,0.230761854998563,0.0967992851424184,0.0520224756523922,0.514776936715075,0.0305246247302925,8 +"197",96,0.181353377038132,0.135023259516977,0.686385896811732,31.3450418603079,1.22389341422894,0.577374174046376,0.0111256902769031,0.996277261285555,0.000189360435626224,0.0321754771087477,0.650040043241058,0.000757441742504895,0.00453838796333536,0.09060807894659,0.0913450990723586,0.0198695109168788,0.0199669543257874,0.00298646595572247,0.014231962398173,0.0570548935965616,0.0966168494907192,0.29199801469923,0.395877679337976,0.251220899450338,2833.46859971953,0.104995481150802,0.182339714282855,0.0535187143142173,0.128274418408041,0.237516725547917,0.0198996285786373,9 +"198",96,0.198438769840528,0.051282554680445,0.712191553444869,40.1997451702118,1.40435256410765,0.470149358241532,0.0173579931063327,0.994909651239873,0,0.00677834990719896,0.421928596059493,0.00119221481869845,0,0.00997155261995099,0.00997155261995099,0.0139336035341896,0.0195526033979159,0.000150523033463919,0.0116345382237152,0.0452712681892846,0.0660229706425254,0.230901296205202,0.519719090778463,0.298284988322376,2483.48126669075,0.117668143795479,0.0522986880679578,0.176930297767114,0.0911507478582086,0.130659737778522,0.0123059199251036,10 +"199",96,0.345763994442162,0.273468579278017,0.751792726914771,20.8721490795642,0.86432667297285,0.770167776814306,0.0130152371320914,0.986492336884206,0.000631399952413576,0.129947159828032,0.977458969342012,0.10704675070282,0.00312440652822758,0.991224679239354,0.989943610515172,0.0277437087551389,0.0134947916752892,0.005691041516628,0.0127019320236003,0.0596314739706564,0.232892266794979,0.464761976730604,0.41437714694345,0.303590116802495,2671.71894974929,0.0562781997138923,0.477658881815746,0.194664983394086,0.0372700196228745,0.772696647040609,0.108194488854764,11 +"200",96,0.243348893907364,0.0717908311849259,0.674030612413524,26.9414802628702,1.13369505744462,0.63418533488821,0.00985051507925465,0.997074226630757,0,0.00384854454945406,0.282529914497691,0.00279768254050427,0,0.070879763718211,0.0729743417936576,0.0144505034831116,0.0248218139436536,0.00168424586370029,0.0112625103346273,0.0522190736250928,0.112569673820318,0.356993590948503,0.269630901869656,0.110396371122994,2818.05654912602,0.204265300537889,0.16483316360585,0.0367716592643597,0.0553519769053432,0.190962691992871,0.0134079289214098,12 +"201",96,0.25955206368313,0.136442121884871,0.755257937070738,31.5529769247623,1.26924098974532,0.569772801161372,0.00793909247493743,0.995646295207632,0,0.0140240140297645,0.503905758799771,0.0192103338395767,0,0.00196798668935408,0.00196798668935408,0.0178333028207947,0.0285743417887133,0.000155487577294707,0.0126435364140224,0.0592066686008251,0.114388754819434,0.284106232288183,0.556247000419539,0.286485208284157,2184.20276602924,0.0561081971341859,0.087658642123539,0.00111219903623971,0.0870774849300447,0.209367478883737,0.0199955838397812,13 +"202",96,0.22326451862031,0.0552685359965838,0.766823330786605,39.4311205053886,1.31888307033506,0.513648580000329,0.0161852876781642,0.990721419182387,0,0.0239045443994044,0.583093577713345,0,0.00120025834178645,0.0385276213078169,0.039195357622962,0.00994579761704138,0.0176094649557315,0.00183646748613694,0.00722220077819287,0.0366139308371027,0.0950408585093334,0.325821309901456,0.409762492257548,0.250233448382062,2514.57946239628,0.0627890737939256,0.0644396072367003,0.0613738635275904,0.0209235959852732,0.200855507339392,0.0190541622594681,14 +"203",96,0.286842445895467,0.0445117986724436,0.780456699881971,30.3345552056164,1.11163720390964,0.690954552067193,0.016488617051417,0.980120480160412,0.00430737666124724,0.0381812384393028,0.578741119761082,0.0347264092108631,0.00318893969413458,0.130360739785328,0.130360739785328,0.0152346004614883,0.0198990355560283,0.00347453982603649,0.0116419236226519,0.0502500994662049,0.121842299098479,0.303272811956935,0.362300102192066,0.124391667527797,2692.44556943147,0.0646682401328869,0.14863543802146,0.00232504355401997,0.0474215898637488,0.40423962508138,0.0291444944554805,15 +"204",96,0.309844639023256,0.0585831734626223,0.78801107913751,31.6230713177316,1.08568681264598,0.611081113784104,0.0190789530387599,0.991591391580085,0.00113243710027873,0.0266265119333822,0.769903474540675,0.00309643698294531,0.00206552305042563,0.230468514493777,0.230072107980911,0.0153336905684988,0.0136405647258506,0.00252580370269474,0.0120944561673663,0.0435945151644104,0.122377760694955,0.361082284809818,0.233492088309941,0.0799265897954657,2792.64718002059,0.062300279904483,0.083534960245463,0.00285937300780592,0.0305614177688534,0.476233457732184,0.0346401234851773,16 +"205",96,0.282675484635012,0.10066606496513,0.791927471348833,32.0311537424096,1.28479019490792,0.779940340086846,0.00750714086613722,0.993630100767903,0,0.0378190730217727,0.996809206720148,0,0,0.157160768082189,0.157633064833871,0.00804338076172524,0.010231872242162,0.000649447824337728,0.00596093177874453,0.0248856326069695,0.117323260175078,0.340217118154527,0.590672886343326,0.40743393534943,2067.49984190738,0.325402924121203,0.0650769885819102,0.0393940909887727,0.0233734659113762,0.327138049581222,0.019080093406206,17 +"206",96,0.189429970408113,0.0437994477697887,0.745500910213396,29.2204014178517,1.19613421820271,0.46363325794286,0.00386997350219957,0.993207921115219,0,0.0021439760370008,0.999371234310501,0.00108189262570489,0,0.634714607576798,0.662424358198373,0.033523979948817,0.00681806569913903,0.000959652081236123,0.00837057108773511,0.0496722688169272,0.082548620736229,0.322272518108779,0.237634040755541,0.0666111013252752,2774.71771692144,0.164623551080499,0.115535789221137,0,0.0666096936450504,0.191432751362088,0.00949017842596671,18 +"207",96,0.298462179357292,0.0439467614534363,0.789748589477542,31.0438722946242,1.18825053851842,0.611871082696375,0.00965416814060852,0.994419630545142,0,0.0138844028460786,0.940855510308049,0.020224026988921,0.000818136051605834,0.101925665924645,0.101925665924645,0.0178564179119094,0.0296107747223557,0.00299982932797614,0.0156024957251803,0.0660695176874215,0.10505845470982,0.288676085639764,0.405993427737568,0.194319760134858,2491.41071690169,0.0209075433552367,0.11846492079666,0.110525924199418,0.0389198349521168,0.240243766436529,0.0316008900528641,19 +"208",96,0.197498740159901,0.0493753645575276,0.796209272122995,39.2275788711262,1.41894147312413,0.521218527576463,0.00635212969392758,0.993885987826535,0,0.0135195270311402,1,0,0,0.0368761257092681,0.0368761257092681,0.0197097193542824,0.0241276804296518,0.00172212722374323,0.0125475588858608,0.0581070858935382,0.0965184815079309,0.286452387927731,0.344759808885251,0.226727152161522,2703.24615690651,0.149554254650908,0.0754096598719369,0.0768558694070679,0.0705536596622547,0.201912554809793,0.0035721908962247,20 +"209",96,0.155451627465931,0.0368893028451225,0.78291909308022,52.8492106621509,1.53417170717371,0.330064045720676,0.00825491344574198,0.995496196619853,0,0.00597552460770543,0.871533746535069,0.00214727844967327,0.000615133479495948,0.0506370408722297,0.050218701222359,0.0119247097910198,0.0117621752461677,0.00104474050400637,0.00769068721365264,0.0324223127548464,0.0721300903782255,0.269314169718047,0.457492119968687,0.286054623815028,2519.2894501289,0.083785330760154,0.0261256073537432,0.0906356905283542,0.0420727923633642,0.140210160353932,0.0151101682302763,21 +"210",96,0.204109701196311,0.082180002827593,0.744144175239797,27.4693574835154,1.09910180740852,0.570028116344403,0.0341154496369566,0.979353600594242,0,0.0149086033244828,0.694887697698731,0.0271081398128205,0.0108005523488234,0.990823914905919,0.990380275098968,0.0310698606488978,0.00604882928504899,0.000863247546782874,0.0153549047931153,0.053336842273845,0.142661791127706,0.306210218099168,0.620535300208107,0.453219813719793,2068.28313288083,0.0642671077249143,0.205085469304208,0.022543069409569,0.0779402455979985,0.396999420367149,0.0521358945160047,22 +"211",96,0.100846850327818,0.0631768715373424,0.57413875762011,30.5611542562852,1.29599512084296,0.437420395672567,0.00634729931117311,0.99133322868213,0,0.0064185581677757,0.577575280586668,0.000380728645382383,0,0.00132439183305739,0.00132439183305739,0.012077906319656,0.0115355054238149,1.65640177918952e-05,0.0114478834029274,0.0350778591641901,0.0460885137918571,0.210362943688323,0.498482355074764,0.282022331121751,2352.32856337799,0.384687460908586,0.204547080480045,0,0.243916997089989,0.111001284829267,0.00487260032337872,23 +"212",96,0.189653909935025,0.0564929935295235,0.775712326758238,32.4976959096871,1.17996819857378,0.632984848989018,0.0129355531092343,0.99053652707346,0,0.028818663126115,0.757350992412456,0.0252673508089654,0.000633719315453602,0.0511253846333047,0.050840884487758,0.00905672062339362,0.0228217939481729,0.0014867111110503,0.00811435311671097,0.0414795787993277,0.111779530887362,0.337387698247906,0.265921860039008,0.124575612903552,2832.46916159251,0.0445828963642865,0.121289478420572,0.0408977080499,0.025457361664895,0.235425620787092,0.0196036110933398,24 +"213",96,0.185680341706611,0.0739400057849673,0.631816304108999,30.0228871080176,1.09660989593142,0.483174497641573,0.00998673833106056,0.991785939838894,0,0.000726536638017873,0.622139701495687,0.00166065517261228,0.000103790948288268,0.00747294827675526,0.00747294827675526,0.0113700261764734,0.0107528775419679,0.000235882426088965,0.010088210649505,0.0324469967940352,0.0758945999301858,0.229934932801002,0.590028575622316,0.408826680732329,2128.60087106829,0.123018106582592,0.154681437490682,0.00580191400931418,0.113608146267406,0.107551059864271,0.00902010182917882,25 +"214",96,0.204225263964296,0.0967492276062684,0.74683236061719,31.1102174786636,1.29132643130613,0.623753084026134,0.0101917884899491,0.991851376040285,0,0.00729050596493119,0.568765763736805,0.000770500419175826,0.00155300667187076,0.0673801143751026,0.0677653645846905,0.0142717335333978,0.0194059908368464,0.00204355467679299,0.010320653802845,0.0460419328498822,0.0827022178089968,0.315952586396847,0.295160586827851,0.127540337893988,3019.81261571789,0.0485511021141133,0.129442214122134,0.0182170372212518,0.0483134133447766,0.254700177632438,0.019587191927069,26 +"215",96,0.226874569425385,0.0801044066638304,0.781883756101713,29.1846280342404,1.20393525835177,0.633815157314299,0.00901776895620035,0.988919049459042,0,0.0470485731382379,1,0.0110096622140182,0,0.0427233129293494,0.0433541489884481,0.0259432395377697,0.0266343633641756,0.00213648207182878,0.0115225126250358,0.0662365975988099,0.131495788395326,0.289968730874833,0.440974312834559,0.17059266522797,2563.5646180846,0.0713236392326552,0.181874169617695,0.0138077845491854,0.0451316824172255,0.330968541745488,0.0278763254769513,27 +"216",96,0.254117983206179,0.0709954853347635,0.760021625943554,29.0406652293614,1.20323862104562,0.594426323306958,0.00557971639646637,0.990906041859339,0,0.0623382585550823,0.861679584038009,0.00985760281951001,0.000569572623108037,0.0830165296796709,0.114125012006839,0.0150962362658773,0.0262488305466582,0.00140306924983962,0.00938356853766195,0.0521317046000371,0.125542592632424,0.331057698119357,0.268711385483222,0.113336057763812,2838.63327238362,0.0767929031214481,0.183876861729354,0.214016876822855,0.0411013541512711,0.328180956029456,0.0280906368560086,28 +"217",96,0.296776024930835,0.100968090701824,0.824271763850667,40.117625841039,1.55323023160346,0.548993848854858,0.0105812457260925,0.994313143836878,0.0011500575290511,0.0940235093405394,0.767030279800261,0.0221317945350164,0.00372530255641052,0.34535679503557,0.344491885819604,0.0234538642990387,0.0154264889245859,0.0074105960190862,0.010179327229608,0.0564702764723187,0.170113536576318,0.386808601573372,0.319100914118582,0.216127725824674,2847.97260763149,0.0489118371128594,0.0968494747265177,0.214631783606904,0.0141958749745637,0.266061018596774,0.026604462938192,29 +"218",96,0.139353862468742,0.0944187560534752,0.652009763075719,33.3603430691153,1.19491950519089,0.477440258681376,0.0249906552339593,0.995222394223492,0,0.00698562501829634,0.861146941663765,0,0,0.0128474375358491,0.0129723206230857,0.0128037289949912,0.0136690331162525,0.000198074193590337,0.0114618580253003,0.0381326943301343,0.0592817821788454,0.249892585192623,0.502442504399485,0.302634183872126,2326.78877457137,0.25735428372151,0.0907253630754431,0.000205383350400878,0.171975717338442,0.195209780718182,0.00941582797771755,30 +"219",97,0.197784408532203,0.0423680973574905,0.770427783192815,37.031289450509,1.32579710734438,0.483328676638392,0.0144137149974726,0.994742555864343,0,0.0103421284437326,0.864006023132754,0.00233545692841558,0.000942714120876426,0.0112144589311499,0.01165808910568,0.0159970401361052,0.0212354290810681,0.0003008577401806,0.0113542538261623,0.0488875807835162,0.0729124367602167,0.33487569571399,0.437022644334437,0.253059022008749,2650.57079029243,0.214759661220111,0.0747474187335638,0.0665871829270633,0.0508383117312454,0.135976914168225,0.0163119402634907,0 +"220",97,0.240728289191634,0.0518955257242389,0.809367166299442,34.7024126367844,1.62198506536571,0.633940547492699,0.00250333605734915,0.995868001319481,0.00123672616974641,0.0139223643997568,0.569239999586225,0.178420737461194,0.000618363084873207,0.0259344696042361,0.0279884005199767,0.0183119832715165,0.0192402770186288,0.00147759764066466,0.00903133101789492,0.0480611889487048,0.078172174569962,0.27194503881719,0.621339962921202,0.25493569828479,2161.10576666227,0.0870616144793509,0.0565457410529873,0.0327893347309718,0.053898733275175,0.26605474007487,0.023652962683282,1 +"221",97,0.150586406859905,0.0486931369035364,0.775893310335224,36.4761975219281,1.50808612184335,0.537762266032422,0.0140432202742704,0.996481109658757,0,0.0171883913451648,1,0.0220494369505945,0.000305443634419904,0.013339801551474,0.013339801551474,0.0196626389074367,0.0191143437065131,0.00062228236977517,0.00804884503635962,0.0474481100200846,0.0593098094150699,0.241710651549936,0.593557834404632,0.192062058959605,2515.49722677218,0.0829593894720766,0.0568107192748409,0.0147205864517781,0.0601894648897034,0.123474690850616,0.0155165366285311,2 +"222",97,0.204974236343994,0.0706325553634137,0.770423275348925,36.7927460676272,1.2900891742069,0.568265960507617,0.0129765444124848,0.999596563577696,0,0.0129178915730929,0.422178382307133,0.00320688362404798,0.00137437869602056,0.0218125154062779,0.0241538733463268,0.0106404219224935,0.0190701658313513,0.000431572742049223,0.0115825296677071,0.0417246901636011,0.0816112476161529,0.256929975076506,0.589205024170518,0.444498958119495,2274.21553088365,0.0796806749198081,0.116564592231986,0.0195884631450128,0.054624023410409,0.126225666006954,0.0180912305286444,3 +"223",97,0.22589341660323,0.109657755307638,0.762852718958919,39.5265798666342,1.27670500535039,0.543448968706468,0.0235113175596949,0.994535671933177,0,0.0122015255790831,0.678248846494431,0.00168093336854697,0.0012790836168549,0.143936781162775,0.143936781162775,0.0173612743578226,0.0247547498204763,0.00510587641902092,0.0160848142627018,0.0633067148600217,0.100367048666152,0.323124940347154,0.492081592070717,0.331194622670333,2336.14650000687,0.0907341525682653,0.0488164592686956,0.00405474685019191,0.0607538825625172,0.310354363125107,0.0230266121890972,4 +"224",97,0.257735799659655,0.0391129295523298,0.628339257484065,30.1532012310854,1.1631936129882,0.569473673611181,0.0396716711475399,0.994933424629027,0,0.0502562656704695,0.258175495832956,0.00925375839534392,0,0.113783971564076,0.110299966771053,0.012851962789183,0.0153933257366046,0.00177699115067709,0.0114444637463738,0.0414667434228385,0.080381392288313,0.325535468379522,0.204019024411529,0.067498397290666,3189.94657716954,0.0629889941698301,0.160121570957229,0.0485159415036267,0.0962783578858334,0.355341637213736,0.0517163254825749,5 +"225",97,0.165463709061768,0.0737472973954542,0.617241258603239,29.186326011795,1.1687387949138,0.61345549851303,0.00917951861338251,0.997160121340947,0,0.00734510446776295,0.515315458905176,0.00652285793233298,0,0.157335087062055,0.160672484458125,0.0254973827193087,0.00850984227965176,0.000680732252745505,0.0110893360962828,0.0457772933479888,0.0848179875522379,0.343183283617794,0.392966068179431,0.235467127641113,2647.15680890824,0.11085953809705,0.191137314426628,0.0026551711039926,0.0818552384328756,0.252919757228731,0.0132579805952797,6 +"226",97,0.16540522113138,0.0476748454358493,0.682524004969426,39.1470991636496,1.34237800905545,0.487017239381355,0.0142271383489324,0.992289843667889,0,0.0110121028703556,0.788483408746082,0.0145714139418814,0.00149769988869995,0.158264365926553,0.158073700578599,0.0150677255847071,0.0109877446572776,0.00157338620478162,0.00924355649346005,0.0368724129402264,0.0752420909212516,0.281899477162453,0.558307215100157,0.357272501879704,2297.02535304365,0.0625483400661333,0.0565380023661368,0.145084876397651,0.144873999175356,0.1844010143666,0.0225571254941803,7 +"227",97,0.217852797585129,0.091218954202963,0.781373047286093,31.8098696788049,0.984547646941958,0.451310878727675,0.0159081691847243,0.984458373760864,0,0.186656604703454,1,0.0520265101928714,0,0.484105691682966,0.434093627594421,0.0276820992406443,0.0174519082092206,0.00569423721760308,0.0159847598648602,0.0668130045323282,0.126300379371645,0.367712546872262,0.5685645788093,0.350391441170884,2197.46069089065,0.19386733609524,0.228037968510162,0.0694881232898513,0.0553900807523884,0.528675055058447,0.0281724702633052,8 +"228",97,0.161704851244615,0.135552100998681,0.683813067963397,29.8837574853266,1.18455955576604,0.541677069833985,0.0118868571337986,0.992826273050446,0,0.0209118524771428,0.657946335509081,0.0020330761274061,0.000275931628402827,0.0680382004303939,0.0686752705814281,0.0193584148574161,0.0184268367208513,0.00146719141625482,0.0138494852562113,0.0531019282507334,0.0811111025262016,0.284679201239804,0.474225409884792,0.325818283417946,2495.38680774541,0.124491235579229,0.163104820332347,0.0437527494085056,0.122755888192702,0.268810412678786,0.015699370261605,9 +"229",97,0.193259034183266,0.0263044393014938,0.72005721985411,43.7273253594608,1.47406175994697,0.417054982935749,0.00172538201233585,0.998878230878621,0,0.0035970032395296,0.4289834087699,0,0,0.00922931933769884,0.00922931933769884,0.0130098841145564,0.015952358013883,0.00014486162398363,0.0102283925164237,0.0393354962688468,0.0574304353824688,0.243882616168888,0.625234027879333,0.370734463888844,2217.45934273099,0.143095974449662,0.034748965041606,0.166118119159082,0.0719177979142557,0.14159747385297,0.0091745548580607,10 +"230",97,0.312213641599586,0.289443750302185,0.6708553434256,21.7261173166738,0.912570767714616,0.713966724148508,0.0122143232024429,0.966417427221855,0.00708594330427433,0.148124569738196,0.978045571967038,0.136586396570174,0.00151861116601801,0.984797529871245,0.986243891134392,0.0229588597999382,0.0127862313391855,0.00351813685973685,0.0133550077708533,0.0526182357697138,0.198414374804317,0.455895914987856,0.4668570610648,0.346521439817876,2511.17906015743,0.0540674650508135,0.453987035913655,0.200609352954408,0.0592571892061372,0.739262369387853,0.131354413037699,11 +"231",97,0.209960034384281,0.0752939243385351,0.68492347053096,27.8639571779515,1.16593436383357,0.624467838067962,0.0107552727317171,0.995312901031121,0,0.00579725496107325,0.276689575940781,0.0011508956616326,0,0.0417174215048419,0.0417174215048419,0.0127305782406018,0.0201011988066756,0.000372478417874233,0.00973782673492468,0.0429420822000763,0.0849506256196984,0.362331899570698,0.282680344331686,0.126604633730002,2692.3403880091,0.134701643030868,0.141600906050248,0.0332048675757045,0.0569438729574148,0.232660178195314,0.0132770582699492,12 +"232",97,0.23906736962868,0.0478085609488168,0.734613571843521,34.164487830653,1.37824588847081,0.563193508196961,0.0043752443377579,0.993394203120947,0,0.0129266091582359,0.557009707744639,0.00757036014015396,0.000708807850960362,0.00295214816276274,0.00343442979331309,0.0191908781493776,0.0295535380380166,1.8776481681639e-05,0.0140261553447523,0.0627893480138282,0.100202641975818,0.286970251390784,0.590897299588234,0.370240665840942,2198.80493190797,0.12153314407433,0.0849783886678431,0.00310742823320509,0.0679523856499293,0.240110486337181,0.0133285105170278,13 +"233",97,0.222168545356951,0.0831466618173402,0.75938092682054,38.5577048496622,1.30698773952236,0.494320987654321,0.0138056897477187,0.98675970656647,0,0.0169225263911254,0.591504741456432,0.0107890499194847,0.00555734478439792,0.050184290570764,0.0527929862229379,0.0114246293694284,0.0191331422711896,0.0017606103825929,0.00824729468409122,0.0405656767073021,0.0814980923658816,0.331165446046519,0.461603149042763,0.304838074789766,2523.73977097262,0.0831204151010914,0.0746394703882627,0.0443692968330649,0.0194739667203435,0.210728216138844,0.0188906781177313,14 +"234",97,0.252038003356823,0.0541197647710427,0.695992196623744,30.2983482826376,1.14551334215314,0.683841333889629,0.00891025164745352,0.992568122369742,0.000929699124215805,0.0352218799354545,0.553597726047388,0.00238711680869345,0,0.11778602060198,0.113122284011652,0.0142851736225958,0.0171930078470357,0.00231911672766541,0.00941575458604246,0.0432130527833394,0.102131552525396,0.317718638528827,0.371767247538107,0.0915048742524781,2634.90221216217,0.089672147700233,0.137740259591809,0.000708705070098903,0.0855132682162922,0.414280026138262,0.0138692820169899,15 +"235",97,0.278250603831999,0.0532312898768958,0.772007492937726,34.2903766632449,1.21912051724713,0.551622365575854,0.0106611734518711,0.994705552845088,0,0.0168169470495052,0.692151087499925,0.00451142311607428,0,0.15047915047915,0.148804683688405,0.0136122813821035,0.0112648702308116,0.00160382566604935,0.0103474768845792,0.0368284541635436,0.0965096604295917,0.356807004739466,0.290917523475663,0.110165459002668,2858.73860553802,0.0441685790523,0.0417171114845533,0.00373442233907351,0.0612686194081543,0.456165711979665,0.0254241882148859,16 +"236",97,0.207312283602915,0.0599677952730377,0.738566482352333,34.5299096884374,1.26222653683457,0.70505917006873,0.0105420908480182,0.99408299312697,0,0.0256989302878404,0.908841920314196,0.00066146452379722,0.00358637796496305,0.149708025425043,0.150638209911632,0.00808865079663211,0.00701317055391561,0.00220111556476463,0.00473408392471631,0.0220370208400287,0.0862686060485207,0.333723343465253,0.608774740323498,0.414097462663428,2051.35207651001,0.20591700687303,0.07213063924345,0.0218024908273474,0.0544157924655057,0.304480388610408,0.0187793912459304,17 +"237",97,0.161808697874614,0.0753100839868736,0.704618458732436,32.2886435021798,1.22590813581341,0.40326852814582,0.00341548702637709,0.987584007620951,0.00106588753289149,0.00276201374326923,1,0.00484731959780898,0.000929384224864513,0.567391973605488,0.604343709520961,0.0264408575739625,0.00544530044794278,0.0003546514202284,0.00829232720081135,0.040533136642945,0.0728832223416818,0.324264073098371,0.360011501129783,0.127909408272681,2576.00422653068,0.184381117236011,0.118850816405955,0.00164384834772913,0.0725587690305942,0.202204964073491,0.0286598860342594,18 +"238",97,0.260086401258492,0.038522375521263,0.781634178632651,31.7976827666053,1.22752614222531,0.577387367643659,0.00902439829839356,0.999468623253887,0,0.010921743516153,0.935952590386584,0.0378118085722777,0.00158512385281164,0.0902139616988445,0.0906702852322297,0.0150981435249313,0.0219920618097594,0.00142367700885541,0.0139380259843153,0.0524519083278614,0.0773574974235829,0.27903127706039,0.427917393431943,0.223694599471025,2588.47363241386,0.0473525729742387,0.136104498089145,0.0250737773081114,0.0289435209563581,0.197588089955779,0.0218825147029244,19 +"239",97,0.184197012758196,0.0717483838520136,0.80458090963018,40.0651255495016,1.39400795085873,0.491739488432628,0.000261184449343497,0.984660947169912,0,0.0124084747713529,0.988954996591322,0,0,0.0259148096009633,0.0224087403826574,0.0199896180109444,0.0207911590205878,0.00148783536490186,0.0110501528634659,0.0533187652599,0.0808988050206599,0.291979120898426,0.304603043905549,0.205370660575314,2680.91328587854,0.110060470840306,0.0614226141464581,0.0533524573472514,0.0714361603229833,0.179942805032449,0.00498021195782093,20 +"240",97,0.112323826964235,0.0660188152589683,0.68718578145275,51.779980130755,1.64457380095072,0.296962156150117,0.0224720679021014,0.997233472455497,0,0.00933878587357671,0.854205402733385,0.00449666050634476,0.000179754073957567,0.0311620539149876,0.0318501749793564,0.0126488669294761,0.00897998626840111,0.000500713931831532,0.00854242479365447,0.0306719919233632,0.0595589404634309,0.26515875529505,0.564601928985906,0.413549525056033,2250.75312158787,0.13385780329287,0.0365153549300363,0.0875205734154959,0.07239595328641,0.148957145505306,0.020536902949652,21 +"241",97,0.203139459360038,0.0651440550974762,0.679706554622493,27.1473635132677,1.07179629325161,0.588229997106931,0.0254168606555964,0.984963702515821,0,0.0238151347768026,0.701810754937856,0.0242002387261298,0.00729398375666029,0.991167516386077,0.991516217474523,0.0284276870155271,0.00508155122750606,0.000497740378892159,0.0141386706968467,0.048145649318772,0.0913494436186847,0.296608667412531,0.618737510465822,0.489662545479627,2031.0010351008,0.0817033473388551,0.201179452692566,0.013670232231093,0.0912255693694833,0.363453826802852,0.0514774771667845,22 +"242",97,0.0978650816811648,0.0864282895033936,0.588798794771201,32.4342933198003,1.40827455967962,0.414208660852148,0.00211872069797593,0.993208681295747,0,0.00273090539758195,0.602378960975416,0.000184666357092165,0.000220611146793803,0.0026068958731113,0.0026068958731113,0.0104516156644489,0.00925547148585424,3.11609474516368e-05,0.0100319492224621,0.0297701973202169,0.038204849072213,0.214363918934025,0.535169393191293,0.297065714489187,2275.93506298392,0.421814578353014,0.174740428070994,0,0.25591522061901,0.133048515805935,0.0053209521505206,23 +"243",97,0.213213846062908,0.064291038465634,0.779040212589339,33.0801001364908,1.21202500364999,0.647842367266587,0.00984562087035186,0.985996139879262,0,0.0204339680344995,0.695464229633494,0.00751721248910968,0.00104341479336018,0.0305956973274703,0.0321171297355226,0.0105228184833607,0.0204492207072501,0.00120311549031591,0.00747455074334212,0.0396497054242688,0.0885023507036879,0.339077143346565,0.347387736535195,0.170207680663673,2774.7937609954,0.0660049806351466,0.125430794100337,0.0323972583376809,0.0360132302939808,0.238088751937128,0.0141374994538777,24 +"244",97,0.130000694713232,0.0697162363545421,0.583437540318179,31.5484743082058,1.18368032180947,0.482942309028295,0.00169212294439317,0.995826758368813,0,0.00334206687111085,0.625442879685593,0.00244886414386519,0.000116612578279295,0.0176432349817886,0.0177598475600679,0.00920811520068221,0.00767235050272391,0.000462190018539787,0.00973216049025936,0.0270748162122053,0.0646596869399674,0.257318195909403,0.607499429342702,0.389314814263455,2172.06762688058,0.152092575500442,0.185252726749437,0.0079867210527883,0.125631444705789,0.124242018241185,0.0111923263961255,25 +"245",97,0.180729987154941,0.0839912029797999,0.712820823537966,29.9704180934146,1.28769652190873,0.5406025059984,0.0088945978042219,0.996175565303798,0,0.00363539419791086,0.491982743995541,0.00235573544024624,0.00117786772012312,0.0410363297060178,0.0417440197765444,0.0125835525923956,0.014990695704205,0.00116068464755947,0.00992068512751663,0.0386556180716767,0.0648489190102896,0.289774779088423,0.342485640192918,0.173682169603257,2743.56024715107,0.078873512517874,0.128503914107753,0.0219529337631177,0.0481350427764717,0.214102905891762,0.0132619180339788,26 +"246",97,0.224299635547298,0.0710184005690152,0.777108675229243,30.026868751435,1.23757971050938,0.606140095549006,0.00754352604067717,0.991766262242107,0,0.0386152540275422,0.997291441897594,0.006034123648989,0,0.0304721501315062,0.0314935240362745,0.0244110961644628,0.0211003650533037,0.000706601752690849,0.0104011980272032,0.0566192609976606,0.0981036518759252,0.286905242109946,0.49084859439081,0.233797018494537,2438.76394393119,0.0719371419308847,0.151973813785759,0.00945206601631066,0.053160245896639,0.347673237040665,0.0278977998630034,27 +"247",97,0.203424350429754,0.101824323742061,0.703139367870686,28.341975081125,1.18638426312437,0.585772150744374,0.00415694559492959,0.994539734168269,0,0.0662261469598061,0.82096635685896,0.0108787342214656,0.00251924582215568,0.0616550267123652,0.0654851923062309,0.0140680116704899,0.0216749767005133,0.00215701600033024,0.00801634543890219,0.0459163498102357,0.102061831721299,0.338644209042386,0.313169234042877,0.157272374930654,2715.18567223284,0.0708618632539689,0.195992005289276,0.182331841291313,0.0486788208561636,0.343213995303487,0.0327729942927493,28 +"248",97,0.251071115164238,0.0701283855082659,0.781587143176695,36.6374028335287,1.44732564659522,0.522054648381713,0.00739886780115973,0.99720821790526,0.00104100349295387,0.0842008362441282,0.808192955589586,0.0471677822323933,0,0.289983997797546,0.29085293459745,0.020799604530218,0.014832837163192,0.00491786926454559,0.00960430173171483,0.0501546126896704,0.121255277274126,0.389503789487996,0.323941359671008,0.231902885558442,2816.68993563252,0.0455761653216787,0.121775900338971,0.188099007175181,0.0274016208682485,0.275418552230845,0.0162904141645302,29 +"249",97,0.0876989406729538,0.0764090213719877,0.63502842935022,34.7127228957448,1.21266336861686,0.454335602649275,0.0127540588009315,0.997608261917288,0,0.00475756473070697,0.911262348770164,0.000365013254262149,0,0.016791736280177,0.016791736280177,0.0116432213460938,0.0114586716256338,0.000245740732853774,0.0105703048736391,0.0339179385782204,0.0438725124486045,0.267444611795244,0.46160544996333,0.227577877943623,2471.8417103179,0.325893747345486,0.0854750636238381,0.000530621119621877,0.182672234996434,0.197578069462924,0.00653306130082162,30 +"250",98,0.176199933598063,0.0424416452888908,0.759477388174011,36.0148268873767,1.32236131441471,0.505510129043562,0.0149456510244626,0.995822355707252,0,0.00586076880695766,0.895844186125218,0.000206307197902691,0.00130364655057261,0.00585338542022137,0.00684740415032651,0.0138494099124568,0.0172674527537552,0.000178217565530278,0.00992753948540727,0.0412226197171496,0.0531504947475157,0.351181520966455,0.442493647491229,0.222074525652199,2664.45737734448,0.20469059395243,0.08743231416647,0.0804812383971429,0.0421239514724663,0.127988267813652,0.0108955471537028,0 +"251",98,0.230026554481252,0.0417771684505965,0.811688101780085,36.1285565402107,1.71596822395095,0.643051721395145,0.00977327538231752,0.993711165781273,0.00123714872376148,0.0107806958224565,0.561635582136938,0.17550993702869,0,0.018866686703383,0.0194852610652638,0.0159317820439705,0.0163439727011179,0.00116915034850149,0.00828419513694169,0.0417291002305315,0.0596613713349617,0.275538601610172,0.618342237324919,0.293044001176525,2123.15138253963,0.102424363681506,0.0436114376527465,0.0252359906609529,0.0771679867027634,0.229160530462245,0.0245892292590295,1 +"252",98,0.16404329269832,0.0297613657012877,0.814009747247435,38.3886646477355,1.52222225031827,0.558972029780289,0.0205439020349098,0.998752137560306,0,0.0122983193459486,1,0.0120592860641744,0,0.01201569590722,0.01201569590722,0.0157666460686744,0.0157574850995103,0.000280542450323207,0.00746855844954744,0.0392732320680553,0.0461018516352819,0.263113142631986,0.585780618258819,0.197956335898076,2448.25871934293,0.0924122155585408,0.0392906762920754,0.013208445400003,0.0562398375641628,0.11834121481834,0.0179510971735775,2 +"253",98,0.219154664546739,0.0507387883990864,0.810339933385482,36.0475367993344,1.33530091576073,0.563252615048569,0.0146861177236841,0.997968017650533,0,0.00645980030790861,0.439658623868457,0.002186675796625,0.000286432437717458,0.0131294674660021,0.0131294674660021,0.00897042162300214,0.0181319292703905,0.000591372141743173,0.0107769001459878,0.0384706231811236,0.0689834036384172,0.291195670546276,0.524399974294059,0.384890221251038,2452.12138179807,0.105531794819659,0.109018317338831,0.00679183337533074,0.0380160684732717,0.141363769286098,0.012802746238685,3 +"254",98,0.21900416438001,0.129709740710181,0.811909432749808,38.5439643338248,1.13268153508673,0.449076183984553,0.0269697070292002,0.995067644117121,0,0.0199283312753976,0.734486187920077,0.0190257318158523,0.000347080777622083,0.10216630225383,0.10216630225383,0.014204428027286,0.0221259290673083,0.00292654732979723,0.0133055027751908,0.0525624071995823,0.0821006559510355,0.29965546028074,0.652060298819123,0.478920205466769,1963.78486223517,0.0980228529887084,0.051239517966168,0.0275087279876655,0.067327165400276,0.313896490082442,0.0214256848754237,4 +"255",98,0.220330501144658,0.0456830443628029,0.657137025270151,33.2039379305254,1.25346384642126,0.575787476816279,0.0166536771634916,0.993179719712273,0.000305920939499487,0.0342342130856895,0.240075947532124,0.00400275536387934,0,0.0692558377840231,0.068970716472213,0.0133837029510061,0.0157221345256271,0.0014255375030753,0.0117041627302475,0.042235537709956,0.0593776836455425,0.332201643290173,0.229386529119363,0.0675882702529783,3057.04064231275,0.0820295615692166,0.122939519060102,0.020280023775526,0.113824511637747,0.322022710739338,0.0283089881453553,5 +"256",98,0.181305052462786,0.0756766209827537,0.650589197749113,29.3168416726464,1.16776155817633,0.600435797905006,0.0118069557072104,0.993910451369052,0,0.00430603444961205,0.501528221253031,0.0050574526339737,0,0.152688231181429,0.168055930170189,0.0204148725968313,0.00780551964461002,0.000490002242239186,0.0104129445257959,0.0391233390094764,0.0684413228791823,0.381605562284554,0.33091452411192,0.203972759718397,2641.59280025668,0.112269690470923,0.180568113253577,0.00290108328870275,0.0868260981401753,0.21848759670082,0.0113385409082879,6 +"257",98,0.153173006365795,0.0551271230679551,0.71823933763209,41.2180321848457,1.3871176767769,0.511180916592765,0.0235812960848974,0.991385572870349,0,0.0100861614690723,0.75323169929632,0.00905497896204883,0.00111248138323221,0.150029521034757,0.149745926415336,0.0138356005522407,0.0121864140360292,0.00147425832679611,0.00835381370146214,0.0358500866165281,0.0617155277910356,0.298027412231878,0.56050834353213,0.304936408112327,2221.20594896303,0.0625706399102873,0.0537775403085103,0.138022732458437,0.152505056255769,0.173986340776204,0.019213551780055,7 +"258",98,0.210400577391237,0.0326026513373259,0.780594960413908,33.1068624908685,1.11029983061665,0.458925755743088,0.00154908579036951,0.983782165959874,0,0.174675760376807,1,0.0370086628846498,0.000534306252329124,0.485954906079445,0.395799651490754,0.0220282460729526,0.0141266520462887,0.00531800468199878,0.0116950047329314,0.0531679075341716,0.104844632452115,0.396374486804187,0.534606495037626,0.390795938375458,2280.07889885647,0.175419920607649,0.213645331594093,0.0654992279895361,0.0512225159800845,0.495354605744156,0.0265347318691972,8 +"259",98,0.179695192102827,0.147349210582091,0.71760134089454,29.598082024987,1.23879467038301,0.559097120620234,0.0101175780610509,0.991740414028804,0,0.0126653215654634,0.569938157677734,0.00256028541815952,0.000227890981816197,0.0483818730371465,0.0483818730371465,0.016510658274759,0.0163662543019103,0.00101519991093712,0.0114232073274469,0.0453153198150533,0.0640986750950538,0.322946971021952,0.438347128686869,0.301602248021877,2669.89917872733,0.127971760328272,0.169091622789234,0.0433831386934298,0.100030276402422,0.245365774396327,0.0154186097637978,9 +"260",98,0.187260882243582,0.041086364309545,0.742137332936755,40.8120927914799,1.40037309353901,0.397947287524409,0.00266113484804716,0.999746487679361,0,0.00268262252966109,0.36939144027121,0.00267869444662736,0,0.00827938715786507,0.00827938715786507,0.0132077762205011,0.0166251303201695,3.08123998584012e-05,0.0098394729428096,0.0397031918833386,0.0460485800324361,0.263108496019432,0.571575630699983,0.318267022496306,2223.48813119778,0.115572607161208,0.0354833950154063,0.122349682595867,0.0679973165716437,0.107070514271803,0.00753731117597906,10 +"261",98,0.317273884692173,0.267544636339349,0.695460726164773,22.3144557539026,0.930003195540207,0.714193098432889,0.010700882598013,0.985185391056679,0.000768039621808493,0.162417749054018,0.976619841108365,0.109104649314357,0.00415072522454748,0.98303288871759,0.98370311731282,0.0200354716305701,0.0113088483625718,0.00277951486242367,0.0102771835931557,0.0444010184487213,0.144666671473467,0.478795612407345,0.468273239802707,0.317298605249754,2529.94790767095,0.0557060714361981,0.433860705948031,0.188887167906583,0.0406721109108577,0.70542082753244,0.11276857734026,11 +"262",98,0.217944765022108,0.0692664183777603,0.718043231997185,28.877757965034,1.18337024132917,0.583077188403947,0.00718040435144314,0.996257802626216,0,0.000722977694187942,0.266562008919141,0.0115827169658942,0,0.0345105533480366,0.0345105533480366,0.0125670075908274,0.0194572631398904,0.000672351048986457,0.00961569102764088,0.0423123128073452,0.0714586203949826,0.378360193833684,0.31041120502006,0.133974677652269,2686.70419918198,0.147643722054024,0.125941319311978,0.0281541387007568,0.0545233562221253,0.2269348956339,0.00579970881596936,12 +"263",98,0.234390334261588,0.0689093532072034,0.75026305531162,34.4627885664524,1.33750176303927,0.612328444713419,0.00592770534123703,0.99507755427808,0,0.00862808186590091,0.547503449701811,0.0225355941435384,0.00220242979507897,0.00359509051813348,0.00406142265074118,0.00748294300806556,0.0106964604238036,6.87671682052723e-05,0.00677512622391511,0.0250232968239896,0.0655177430354867,0.283353204636609,0.566307899163835,0.398037668659438,2326.38087946812,0.0975308479512507,0.0864268893140421,0.009880734644653,0.056709547959439,0.341514671580427,0.0206723813092152,13 +"264",98,0.25426016386065,0.076820934007888,0.766841614453461,39.3375355997106,1.34791112019347,0.539006605779067,0.00805381516952237,0.991288860238149,0,0.0147898500438462,0.60048126648721,0.00197288658981537,0.00246377312889211,0.0374111691271197,0.0385692931069243,0.0106253654469795,0.0194014236567866,0.00160090969855644,0.00737380886069852,0.039001507663021,0.0683984629476867,0.346877010339576,0.497491140230187,0.332077576680846,2513.13060970127,0.067092974288705,0.0719365335115697,0.0369938208104463,0.0263816282424965,0.210809851489399,0.021944493949672,14 +"265",98,0.280708000313315,0.0394418011730846,0.716062904026979,30.4941398598253,1.17230531705146,0.670601706124642,0.00439010242065215,0.995160976405747,0,0.0359628752579942,0.577997656244166,0.00222514471515718,0.00208254671622137,0.0844181408014568,0.0844181408014568,0.0142612630810609,0.0169454541743869,0.00205994918889259,0.0105749782590103,0.0438416447033507,0.0767464780465082,0.319488444556586,0.319757065742337,0.0928455661365763,2737.2010133492,0.0715096354161847,0.173805570008147,0.00495769746573715,0.0751736937523255,0.397407675169792,0.0256479777486439,15 +"266",98,0.291788252617772,0.0490901917691853,0.801886652733383,34.2428505654824,1.24470443774752,0.557310273904606,0.0121550280275692,0.994309448302152,0.000462949000595004,0.0116624713449124,0.767622095523515,0.00155199936878915,0.00111695170572071,0.100114391204732,0.100577340205327,0.0122184454642313,0.0109608962014843,0.00128203899460752,0.00865621323899777,0.0331175938993209,0.0757486885772378,0.377439038149754,0.273671212379917,0.118394859663634,2802.25821668178,0.0456905887219477,0.0570292845653469,0.000462949000594959,0.0582506062083858,0.451350342339753,0.0196723298062766,16 +"267",98,0.214354972826453,0.0530360807773498,0.727969308160982,37.4259131458247,1.22190539289869,0.669401142273536,0.0135145385082324,0.995103425618884,0,0.0196204343459632,0.918664460048982,0.00382231355902883,0.00454063669633534,0.119334582398493,0.120608686918169,0.00625784529333658,0.00707717436577161,0.00214205534190841,0.004462447190471,0.0199395221914876,0.0791576426323583,0.341880185538381,0.630324147839744,0.483395874249627,1984.02724268009,0.148165204442937,0.0447838085390969,0.0067234908943411,0.0875644449761441,0.339051433906176,0.0376277627168755,17 +"268",98,0.175563620870541,0.0540617962695701,0.709370997561274,32.7867551904566,1.21310926668975,0.455924342240386,0.00426240128903407,0.991228731078688,0,0.00147403334735132,0.995393064449699,0.00265022389219038,0.00225643361618907,0.520174292178535,0.586288677228078,0.0215870943577011,0.00515477094405991,0.000137526465763935,0.00644187748822095,0.0333212692557459,0.0635847512301435,0.344196145635865,0.408647157897977,0.110395592328254,2420.94726738904,0.174114468961774,0.0900598253255971,0.00141120290881069,0.078307702981523,0.187290443552703,0.0222209088756032,18 +"269",98,0.25105674106137,0.0316665591805628,0.812995137338651,34.2227194642301,1.32711136305554,0.540797913249643,0.0053115222243804,0.999033416458986,0,0.00276947487316771,0.972207513016681,0.0229522325480183,0.000515949570108384,0.0648721121749981,0.0648721121749981,0.0128811744399715,0.0198074650802452,0.000460231220020956,0.0120113313283213,0.0451602020685589,0.0670563639951202,0.282352872940324,0.541540158883337,0.365588293905267,2299.52945814652,0.0305038264642114,0.127832498793119,0.0201382934216959,0.0468402417881886,0.201119650611302,0.0141107355860158,19 +"270",98,0.164748616048682,0.0523666416072461,0.840784019669773,40.2313739808381,1.47061005548661,0.474439880890333,0.00142891094197715,0.992520728607247,0.00137781262894517,0.011285537695065,1,0.00137781262894517,0,0.0205742061324372,0.0183654186922757,0.0166969499967395,0.0179066628622594,0.000721846765388159,0.00864650473354316,0.0439719643579302,0.065549388358484,0.298066623763176,0.279763998544452,0.201476548262775,2606.24325445388,0.0972629437113461,0.0575475164090163,0.0570804302736706,0.0517708273158874,0.145185705956996,0.00588795680505083,20 +"271",98,0.111524973795455,0.0919740125842795,0.710220349813011,52.8126541153999,1.46619641857647,0.28868174352911,0.0128010482909795,0.991306368581185,0,0.00566601142591009,0.812453794512273,0.00281620378290371,0,0.0311486983338468,0.0311486983338468,0.0115419813332583,0.0102950162810056,0.000587398221677328,0.00974953033230424,0.0321739261682455,0.0501938211184402,0.265511545865984,0.680767397600057,0.545188141879947,1888.05334355196,0.122300514499425,0.0239658509746434,0.0980159974059212,0.0799212110743577,0.145893558499323,0.0179990551356582,21 +"272",98,0.199155210282688,0.0563103166369758,0.705690476945252,27.7500795208049,1.09936365128407,0.601726496907542,0.0220658770970133,0.989376907723378,0,0.0116708016782509,0.677290750892165,0.00998904280932445,0.00202054459201736,0.987599169899534,0.988250320830515,0.0245654788704525,0.00523762012055469,0.000731315060027447,0.0136712093805222,0.0442056234315568,0.0756145729163547,0.321593764129383,0.65611596397685,0.50312589265172,1905.11042253326,0.111485206868004,0.192759538046709,0.0112646935563071,0.0813391344660139,0.307575312279477,0.0449861840318959,22 +"273",98,0.0842732178361176,0.0629977874521359,0.606977297412539,31.8788268421904,1.38823878352278,0.397339815472743,0.004432927784721,0.996021729836579,0,0.00268184565782547,0.542933245714768,0.000379397483806713,0,0.00195379066517585,0.00195379066517585,0.00917206734607349,0.0086004030603434,3.57634767544636e-05,0.0095631886383095,0.0273714225214809,0.0298063946252455,0.203077811879224,0.656488314248029,0.411819269279016,2078.48037380146,0.315443655779869,0.16353426175798,0,0.243862702898119,0.0860641115182122,0.00441503301157934,23 +"274",98,0.191752010718333,0.0669761782310212,0.804981959596466,32.8548004292104,1.22202974782383,0.633784240789718,0.00724558436236774,0.988430495598191,0,0.0206232254292507,0.695735301943379,0.0119342499735351,0,0.0118204880935613,0.0118204880935613,0.00920344054908766,0.0204970636722853,0.00039364359647988,0.00688609843179823,0.036980246249651,0.0713795899804453,0.336422791370165,0.312292641749076,0.103638854477312,2698.26573386694,0.0531618931810826,0.11829195545486,0.0283530373762947,0.0511496973109435,0.24044789869705,0.0110119039709088,24 +"275",98,0.132021308070465,0.0574576178475566,0.611728907434771,30.7937557720866,1.161553666462,0.474917608822125,0.00338403910477633,0.994484372395894,0,0.00367137868412254,0.544301040758461,0.00139266211493748,0,0.00970561083450403,0.00970561083450403,0.0107257801780923,0.00797031605743461,9.06150688202857e-05,0.0095769412516029,0.0283636525559501,0.0495572493308989,0.274101903207932,0.629487589800786,0.387983015997486,2238.0700238395,0.142317586123977,0.216526468814763,0.00595663126497059,0.101511024943726,0.108957825232015,0.00803323321002642,25 +"276",98,0.189843618296473,0.0889158575084947,0.734194717096243,30.7846949553485,1.32856243776544,0.562586376484465,0.0149857881879123,0.997101275240368,0,0.00363692775719451,0.417422881975623,0,0,0.0354551803013714,0.0357382843927917,0.0114128801606745,0.0140370305818151,0.000650462289509466,0.00922902142172168,0.0353293944537207,0.0553212241245646,0.304190757461461,0.418092501613118,0.192412134331732,2691.40863360972,0.0725093324530005,0.135074841123474,0.0101473338939743,0.0711806984384796,0.200534408656656,0.0105666886595089,26 +"277",98,0.222542917384992,0.0802147941472575,0.793985844073833,31.374480774943,1.29575300695919,0.605830628080991,0.0107867568162481,0.992700143941906,0,0.0426415468810068,1,0.000675473269459424,0,0.0274138848938977,0.0274138848938977,0.0185246427142458,0.017740480812897,0.000653228608765981,0.0091779278846615,0.0460962800205703,0.077288227073168,0.301203543273628,0.531663826667495,0.261367899923919,2293.7001218521,0.081614866887262,0.145513522733102,0.00616247981194917,0.047808637602017,0.357428107955952,0.0251974008913819,27 +"278",98,0.212265483156235,0.100900379932977,0.699208356178139,29.4511842971127,1.2262309877411,0.584428621795298,0.0294329927101597,0.981244338047079,0,0.0893472740415073,0.852432074589565,0.0135913008194749,0.00178434754772723,0.0250390651888232,0.0282476607730533,0.0126877406769891,0.0198275700631516,0.000861542098398112,0.00790981741050212,0.041286670249041,0.0812402486954729,0.348248277571632,0.339060428708224,0.173666505202252,2751.05655666571,0.187355831925749,0.191590134281933,0.175156775576396,0.0520919137079022,0.361829055800533,0.0590451363766963,28 +"279",98,0.258049759323859,0.0560561781090417,0.801452201042201,38.7965512501413,1.50349004110994,0.504133508083302,0.00362986677124519,0.998156768485653,0,0.0663293641435326,0.793800776810939,0.0229442527471152,0,0.200430202049176,0.200430202049176,0.0160462508183125,0.0122534648288598,0.00348662934610975,0.00812983437818322,0.0399161793714653,0.096303389210367,0.401046468912829,0.302088650419537,0.199639345626715,2808.45219998107,0.0377320751589709,0.102473955545387,0.175067521004509,0.00860315234140197,0.225100250462937,0.0153184012812686,29 +"280",98,0.130920131174049,0.0777626108283764,0.680444461455371,33.5198079964094,1.2531511792839,0.498747568613725,0.00591387645736555,0.991993971262066,0,0.0038955094582393,0.955984396680696,0.000178294139986706,0,0.0111953533421789,0.010763093955616,0.00904800351370329,0.00980614338026571,0.000401896484663855,0.00910117037580057,0.0283572137544334,0.0337179899718755,0.241838985284734,0.585724307243131,0.337068653165156,2194.34964816972,0.322782445073847,0.0727449740700826,0.000640208079262128,0.158797662920868,0.161097673089577,0.0126000062559,30 diff --git a/R/RunAllCodes.R b/R/RunAllCodes.R new file mode 100644 index 00000000..6226b9b9 --- /dev/null +++ b/R/RunAllCodes.R @@ -0,0 +1,25 @@ +#source("modifySettings.R") +#source("104-ExtractAccessFiles.R") +source("105-ReadWriteIntoR.R") +source("111-HHBase.R") +source("112-InfantMilkExpenditures.R") +source("113-Demo.R") +source("121-HHHouseProperties.R") +source("131-HHFood Expenditures.R") +source("132-HHNonFood Expenditures.R") +source("133-HHDurableExpenditures.R") +source("141-Breaking Durable goods in four sections.R") +source("142-Calculate_OwnedDurableItemsDepreciation_FunctionDef.R") +source("143-CalculateDepreciation-FirstRound-BasedOnTotalSample.R") +source("151-Food Groups for Calorie.R") +source('152-Total Food Calories.R') +source("153-Specification of food original groups.R") +source("161-Step1-MergeData.R") +source("162-Step2-CaloryEqSize.R") +source("163-Step3-Add_OutofHouseCalories.R") +source("164-Step4-IterativeRealDeciles.R") +source("165-Step5-AddClusterInfo.R") +source("166-Step6-FoodPoor.R") +source("167-Step7-Engel.R") +source("168-Step8-PovertyStats.R") +#source("170-Deciling for normal calculations.R") \ No newline at end of file diff --git a/R/Settings.yaml b/R/Settings.yaml new file mode 100644 index 00000000..39b44edd --- /dev/null +++ b/R/Settings.yaml @@ -0,0 +1,211 @@ +HEISPath: C:/HEIS/ +HEISCompressedPath: C:/HEIS/DataCompressed/ +HEISAccessPath: C:/HEIS/DataAccess/ +HEISRawPath: C:/HEIS/DataRaw/ +HEISProcessedPath: C:/HEIS/DataProcessed/ +HEISResultsPath: C:/HEIS/DataResults/ +HEISWeightsPath: ../Data/SamplingWeights/ +HEISWeightFileName: HHWeights +HEISCountyCodePath: ../Data/CountyCodes8791/ +HEISCountyCodeFileName: ShCode +startyear: 83.0 +endyear: 99.0 +startmonth: 0.0 +endmonth: 0.0 +predictionyear: 99.0 +predictionmonth: 0.0 +baseBundleyear: 95.0 +OS: Windows +RawDataWebAddress: https://www.amar.org.ir/Portals/0/amarmozuii/re_DataRaw_63_95_Info/ +MetaDataFilePath: ../Data/MetaData.xlsx +GeoInfoFilePath: ../Data/GeoInfo.Shahrestan.xlsx +InflationDataFilePath: ../Data/inflation.xlsx +PriceCodesFilePath: ../Data/PriceCodes.xlsx +CPIPath: ../Data/CPI/ +MDS_CFN: CompressedFileNames +MDS_P1Cols: P1Cols +MDS_P2Cols: P2Cols +MDS_Geo2: Geo2 +MDS_Geo4: Geo4 +MDS_GeoX: GeoX +MDS_GeoX_New: GeoX_New +MDS_EC_A: EduCodes-A +MDS_EC_B: EduCodes-B +MDS_EC_C: EduCodes-C +MDS_EC_D: EduCodes-D +MDS_Food: FoodTables +MDS_FoodGroups: FoodGroupTables +MDS_InfantMilk: InfantMilkTables +MDS_Cigar: CigarTables +MDS_Cloth: ClothTables +MDS_HouseandEnergy: HouseandEnergyTables +MDS_Energy: EnergyTables +MDS_Furniture: FurnitureTables +MDS_Transportation: TransportationTables +MDS_Communication: CommunicationTables +MDS_Amusement: AmusementTables +MDS_Hotel: HotelTables +MDS_Restaurant: RestaurantTables +MDS_Other: OtherTables +MDS_Durable: DurableTables +MDS_DurableGroups: DurableGroups +MDS_DurableItems: DurableItems +MDS_DurableItemsDepr: DurableItemsDepr +MDS_Finance: FinanceTables +MDS_Investment: InvestmentTables +MDS_Medical: MedicalTables +MDS_Hygiene: HygieneTables +MDS_Loans: LoanTables +MDS_FinServices: FinServicesTables +MDS_House: HouseTables +MDS_Education: EducationTables +MDS_Insurance: InsuranceTables +MDS_ActivityState: ActivityStateTables +MDS_PubWage: PubWageTable +MDS_PrvWage: PrvWageTable +MDS_AgriInc: AgriIncTable +MDS_BussInc: BussIncTable +MDS_OtherInc: OthrIncTable +MDS_Retirement: RetirementTables +MDS_Interest: InterestTables +MDS_Rent: RentTables +MDS_Aid: AidTables +MDS_Homemade: HomemadeTables +MDS_Intra: IntraTables +MDS_Subsidy: SubsidyTable +MDS_Rough_Weights: RegionWeights +OutFoodKCXShare: 0.3 +OutFoodKCXShare12: 0.4 +OutFoodKCXShare3456: 0.2 +OutFoodKCXShare78910: 0.1 +KCaloryNeed_Adult: 2100.0 +KCaloryNeed_Adult_WorldBank: 2100.0 +KCaloryNeed_Adult_NutritionInstitute: 2400.0 +KCaloryNeed_Child: 1800.0 +KCaloryNeed_B1: 850.0 +KCaloryNeed_G1: 780.0 +KCaloryNeed_B2: 1250.0 +KCaloryNeed_G2: 1190.0 +KCaloryNeed_B3: 1430.0 +KCaloryNeed_G3: 1330.0 +KCaloryNeed_B4: 1560.0 +KCaloryNeed_G4: 1440.0 +KCaloryNeed_B5: 1690.0 +KCaloryNeed_G5: 1540.0 +KCaloryNeed_B6: 1980.0 +KCaloryNeed_G6: 1730.0 +KCaloryNeed_B7: 2370.0 +KCaloryNeed_G7: 2040.0 +KCaloryNeed_B8: 2700.0 +KCaloryNeed_G8: 2120.0 +KCaloryNeed_B9: 2460.0 +KCaloryNeed_G9: 1990.0 +KCaloryNeed_B10: 2010.0 +KCaloryNeed_G10: 1780.0 +KCaloryNeed_NutInst_B1: 705.0 +KCaloryNeed_NutInst_G1: 643.0 +KCaloryNeed_NutInst_B2: 948.0 +KCaloryNeed_NutInst_G2: 865.0 +KCaloryNeed_NutInst_B3: 1120.0 +KCaloryNeed_NutInst_G3: 1047.0 +KCaloryNeed_NutInst_B4: 1360.0 +KCaloryNeed_NutInst_G4: 1242.0 +KCaloryNeed_NutInst_B5: 1927.0 +KCaloryNeed_NutInst_G5: 1782.0 +KCaloryNeed_NutInst_B6: 3036.0 +KCaloryNeed_NutInst_G6: 2434.0 +KCaloryNeed_NutInst_B7: 3029.0 +KCaloryNeed_NutInst_G7: 2300.0 +KCaloryNeed_NutInst_B8: 2900.0 +KCaloryNeed_NutInst_G8: 2200.0 +KCaloryNeed_NutInst_B9: 2350.0 +KCaloryNeed_NutInst_G9: 2000.0 +KCaloryNeed_lactating: 500.0 +nw: +- OriginalFoodExpenditure +- FoodOtherExpenditure +- Cigar_Exp +- Cloth_Exp +- Amusement_Exp +- Communication_Exp +- House_Exp +- Energy_Exp +- Furniture_Exp +- Hotel_Exp +- Restaurant_Exp +- Hygiene_Exp +- Transportation_Exp +- Other_Exp +- Add_to_NonDurable +- OwnedDurableItemsDepreciation +w: +- OriginalFoodExpenditure +- FoodOtherExpenditure +- Cigar_Exp +- Cloth_Exp +- Amusement_Exp +- Communication_Exp +- House_Exp +- Energy_Exp +- Furniture_Exp +- Hotel_Exp +- Restaurant_Exp +- Hygiene_Exp +- Transportation_Exp +- Other_Exp +- Add_to_NonDurable +- OwnedDurableItemsDepreciation +- Medical_Exp +- Durable_NoDep +- Durable_Emergency +InitialPoorPercentile: +- 1 +- 2 +- 3 +- 4 +- 5 +- 6 +- 7 +- 8 +- 9 +- 10 +- 11 +- 12 +- 13 +- 14 +- 15 +- 16 +- 17 +- 18 +- 19 +- 20 +- 21 +- 22 +- 23 +- 24 +- 25 +- 26 +- 27 +- 28 +- 29 +- 30 +- 31 +- 32 +- 33 +- 34 +- 35 +SectorsNumbers: +- 1 +- 2 +- 3 +- 4 +- 5 +SectorsNames: +- Public +- Cooperative +- Private +- BussP +- Agri +D80LinkSource: ../Data/D80Link.accdb +D80LinkDest: C:/HEIS/DataAccess/D80Link.accdb + diff --git a/R/modifySettings.R b/R/modifySettings.R new file mode 100644 index 00000000..aefc2562 --- /dev/null +++ b/R/modifySettings.R @@ -0,0 +1,156 @@ +library(yaml) +OS <- ifelse(version$os=="linux-gnu","Linux","Windows") +if(OS=="Linux"){ + HEISPath = "/media/majid/Document/HEIS/" +}else{ + HEISPath = "C:/HEIS/" +} +HEISCompressedPath = paste0(HEISPath,"DataCompressed/") +HEISAccessPath = paste0(HEISPath,"DataAccess/") +HEISRawPath = paste0(HEISPath,"DataRaw/") +HEISProcessedPath = paste0(HEISPath,"DataProcessed/") +HEISResultsPath = paste0(HEISPath,"DataResults/") +D80LinkDest = paste0(HEISAccessPath,"D80Link.accdb") + + +nw <- c("OriginalFoodExpenditure","FoodOtherExpenditure", "Cigar_Exp", + "Cloth_Exp","Amusement_Exp", "Communication_Exp", "House_Exp", + "Energy_Exp", "Furniture_Exp", "Hotel_Exp","Restaurant_Exp", + "Hygiene_Exp", "Transportation_Exp", "Other_Exp", + "Add_to_NonDurable" ,"OwnedDurableItemsDepreciation") +w <- c(nw, "Medical_Exp", + "Durable_NoDep","Durable_Emergency") + +Settings <- list(HEISPath =HEISPath, + HEISCompressedPath=HEISCompressedPath, + HEISAccessPath =HEISAccessPath, + HEISRawPath =HEISRawPath, + HEISProcessedPath =HEISProcessedPath, + HEISResultsPath =HEISResultsPath, + HEISWeightsPath ="../Data/SamplingWeights/", + HEISWeightFileName="HHWeights", + HEISCountyCodePath="../Data/CountyCodes8791/", + HEISCountyCodeFileName="ShCode", + startyear=77, + endyear=99, + baseBundleyear=95, + startmonth= 0, + endmonth= 0, + predictionyear= 99, + predictionmonth= 0, + + OS=OS, + # RawDataWebAddress ="http://www.amar.org.ir/Portals/0/amarmozuii/hazinedaramad/", + RawDataWebAddress ="https://www.amar.org.ir/Portals/0/amarmozuii/re_DataRaw_63_95_Info/", + MetaDataFilePath = "../Data/MetaData.xlsx", + GeoInfoFilePath = "../Data/Archive/GeoInfo.Shahrestan.xlsx", + InflationDataFilePath = "../Data/inflation.xlsx", + MDS_CFN = "CompressedFileNames", # MetaData Sheet: Compressed File Names + MDS_P1Cols = "P1Cols", # MetaData Sheet: Columns of P1 Table + MDS_P2Cols = "P2Cols", + MDS_Geo2 = "Geo2", + MDS_Geo4 = "Geo4", + MDS_GeoX = "GeoX", # ClusterInfo_Old + MDS_GeoX_New = "GeoX_New", # ClusterInfo_New + MDS_EC_A = "EduCodes-A", + MDS_EC_B = "EduCodes-B", + MDS_EC_C = "EduCodes-C", + MDS_EC_D = "EduCodes-D", + MDS_Food = "FoodTables", + MDS_FoodGroups = "FoodGroupTables", + MDS_InfantMilk = "InfantMilkTables", + MDS_Cigar = "CigarTables", + MDS_Cloth = "ClothTables", + MDS_HouseandEnergy = "HouseandEnergyTables", + MDS_Energy = "EnergyTables", + MDS_Furniture = "FurnitureTables", + MDS_Transportation= "TransportationTables", + MDS_Communication = "CommunicationTables", + MDS_Amusement = "AmusementTables", + MDS_Hotel = "HotelTables", + MDS_Restaurant = "RestaurantTables", + MDS_Other = "OtherTables", + MDS_Durable = "DurableTables", + MDS_DurableGroups = "DurableGroups", + MDS_DurableItems = "DurableItems", + MDS_DurableItemsDepr= "DurableItemsDepr", + MDS_Finance = "FinanceTables", + MDS_Investment = "InvestmentTables", + MDS_Medical = "MedicalTables", + MDS_Hygiene = "HygieneTables", + MDS_Loans = "LoanTables", + MDS_FinServices = "FinServicesTables", + MDS_House = "HouseTables", + MDS_Education = "EducationTables", + MDS_Insurance = "InsuranceTables", + MDS_ActivityState = "ActivityStateTables", + MDS_PubWage = "PubWageTable", + MDS_PrvWage = "PrvWageTable", + MDS_AgriInc = "AgriIncTable", + MDS_BussInc = "BussIncTable", + MDS_OtherInc = "OthrIncTable", + MDS_Retirement = "RetirementTables", + MDS_Interest = "InterestTables", + MDS_Rent = "RentTables", + MDS_Aid = "AidTables", + MDS_Homemade = "HomemadeTables", + MDS_Intra = "IntraTables", + MDS_Subsidy = "SubsidyTable", + MDS_Rough_Weights = "RegionWeights", + + OutFoodKCXShare = 0.3, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare12 = 0.4, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare3456 = 0.2, # Share of Kilo-Calory content in Expenses of outdoor food + OutFoodKCXShare78910 = 0.1, # Share of Kilo-Calory content in Expenses of outdoor food + KCaloryNeed_Adult = 2100, + KCaloryNeed_Adult_WorldBank = 2100, + KCaloryNeed_Adult_NutritionInstitute = 2400, + KCaloryNeed_Child = 1800, + KCaloryNeed_B1 = 850, + KCaloryNeed_G1 = 780, + KCaloryNeed_B2 = 1250, + KCaloryNeed_G2 = 1190, + KCaloryNeed_B3 = 1430, + KCaloryNeed_G3 = 1330, + KCaloryNeed_B4 = 1560, + KCaloryNeed_G4 = 1440, + KCaloryNeed_B5 = 1690, + KCaloryNeed_G5 = 1540, + KCaloryNeed_B6 = 1980, + KCaloryNeed_G6 = 1730, + KCaloryNeed_B7 = 2370, + KCaloryNeed_G7 = 2040, + KCaloryNeed_B8 = 2700, + KCaloryNeed_G8 = 2120, + KCaloryNeed_B9 = 2460, + KCaloryNeed_G9 = 1990, + KCaloryNeed_B10 = 2010, + KCaloryNeed_G10 = 1780, + KCaloryNeed_NutInst_B1 = 705, + KCaloryNeed_NutInst_G1 = 643, + KCaloryNeed_NutInst_B2 = 948, + KCaloryNeed_NutInst_G2 = 865, + KCaloryNeed_NutInst_B3 = 1120, + KCaloryNeed_NutInst_G3 = 1047, + KCaloryNeed_NutInst_B4 = 1360, + KCaloryNeed_NutInst_G4 = 1242, + KCaloryNeed_NutInst_B5 = 1927, + KCaloryNeed_NutInst_G5 = 1782, + KCaloryNeed_NutInst_B6 = 3036, + KCaloryNeed_NutInst_G6 = 2434, + KCaloryNeed_NutInst_B7 = 3029, + KCaloryNeed_NutInst_G7 = 2300, + KCaloryNeed_NutInst_B8 = 2900, + KCaloryNeed_NutInst_G8 = 2200, + KCaloryNeed_NutInst_B9 = 2350, + KCaloryNeed_NutInst_G9 = 2000, + KCaloryNeed_lactating = 500, + nw=nw, + w=w, + InitialPoorPercentile= 1:35, + SectorsNumbers = 1:5, + SectorsNames = c("Public","Cooperative","Private","BussP","Agri"), + D80LinkSource ="../Data/D80Link.accdb", + D80LinkDest =D80LinkDest +) +write(as.yaml(Settings),file = "Settings.yaml") \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..b500ca11 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# HouseHoldSurvey + +This repository provides codes and some data and meta-data to +work with microdata of Iranian Urban and Rural Household Expenditures and Income Surveys (HEIS). HIES is conducted by Statistical Center of Iran (SCI). This repository is not in any way related to SCI. No data, definition and code represents official views of SCI nor any government office in Islamic Republic of Iran. + +# Official raw data +All raw data for years 1363 to 1394 can be downloaded from: +http://www.amar.org.ir/Portals/0/amarmozuii/hazinedaramad/XX.rar +that XX in the range [63:94] is the Persian year in 2 digits eg. 92 + +Official page for SCI HIES microdata downloads: +https://www.amar.org.ir/Default.aspx?tabid=111 + +http://www.amar.org.ir/%D8%A2%D9%85%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D9%85%D9%88%D8%B6%D9%88%D8%B9%DB%8C/%D9%87%D8%B2%DB%8C%D9%86%D9%87-%D9%88-%D8%AF%D8%B1%D8%A2%D9%85%D8%AF-%D8%AE%D8%A7%D9%86%D9%88%D8%A7%D8%B1 + + +# آمارگیری از هزینه و درآمد خانوارهای ایران (بودجه خانوار)‫ +این مخزن جهت انباره سازی کدهای کار با داده‌های خرد آمارگیری از هزینه و درآمد خانوارهای ایران (بودجه خانوار) ایران طراحی شده است.‫ diff --git a/bash/m-extract-HEIS.sh b/bash/m-extract-HEIS.sh new file mode 100644 index 00000000..5f1e3632 --- /dev/null +++ b/bash/m-extract-HEIS.sh @@ -0,0 +1,97 @@ +#!/bin/bash +# +# m-extract-HEIS : extracting "Iranian Household Expenditures and Income Surveys" +# data tables from "Statistics Centre of Iran" MDB (Access) files, and +# tidying them up. +# +# depends: mdbtools >= 0.5.99 (not tested against earlier versions) +# +# Copyright (c) 2010-2015 Majid Einian +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +wd=`pwd` # This is current working directory + +starttime=`date` # Just to show how much time it took to run the program + +# Check if mdb-tools is installed. +type -P mdb-tables &>/dev/null || { echo "m-extract-HEIS requires mdb-tools but it's not installed. Aborting. ";echo "Try: \"sudo apt-get install mdb-tools\" in Debian/Ubuntu or appropriate program in your distro. " >&2; exit 1; } + +if [ -z "$1" ]; then echo Error: usage: $0 year.mdb; exit 1; fi # Check the user input. +if [ ! -w . ]; then echo Error: Current directory access denied.; exit 2; fi # Check the current directory access. + +echo "m-extract-HEIS : extracting \"Iranian Household Expenditures and Income Surveys\" " +echo "data tables from \"Statistics Centre of Iran\" MDB (Access) files, and " +echo "tidying them up." +echo +echo "depends: mdbtools >= 0.5.99 (not tested againts earlier versions)" +echo +echo "Copyright (C) 2010-2015 Majid Einian " +echo +echo + + +# For each of files in list provided by user. +while [ ! -z "$1" ] +do + cd $wd + if [ ! -r $1 ]; then pwd; echo Error: File $1 does not exist.; shift; continue; fi # Check if file exists. + + year=${1%.mdb} # Drop the .mdb extension (if exists) +# echo m-debug 01 $year + year=${year%.MDB} # Drop the .MDB extension (if exists) +# echo m-debug 02 $year + + echo Processing MDB Jet Database year $year. + # Building directory tree system. + if [ ! -r $year/ ] ; then mkdir $year; fi + if [ ! -r $year/U ] ; then mkdir $year/U; fi + if [ ! -r $year/R ] ; then mkdir $year/R; fi + + tableslist=`mdb-tables $1` # Get the list of tables in MDB file. +#echo m-debug 03 $tableslist + + echo Exporting Tables: ... + for table in $tableslist; do + printf "%16s" $table + `mdb-export -Q $1 $table > $year/$table.csv` + done + echo + + cd $year + echo Processing Tables \(Cleaning Up, ...\) : ... + + urbanlist=`ls U*.csv` + echo Urban Tables + for tablefile in $urbanlist; do + tablename=`echo ${tablefile#U$year} | tr '[a-z]' '[A-Z]'` + if [ "$tablename" == ".CSV" ]; then echo OK; tablename="MONTH.CSV"; fi + printf "%20s" $tablename + `cat $tablefile | sed -e 's/@//' | sed -e 's/\r//' | sed -e 's/ي/ی/' | sed -e 's/ك/ک/' > U/$tablename` + `cat $tablefile | sed -e 's/@//' | sed -e 's/\r//' | sed -e 's/ي/ی/' | sed -e 's/ك/ک/' > U/$tablename` + done + echo + + rurallist=`ls R*.csv` + echo Rural Tables + for tablefile in $rurallist; do + tablename=`echo ${tablefile#R$year} | tr '[a-z]' '[A-Z]'` + if [ "$tablename" == ".CSV" ]; then echo OK; tablename="MONTH.CSV"; fi + printf "%20s" $tablename + `cat $tablefile | sed -e 's/@//' | sed -e 's/\r//' | sed -e 's/ي/ی/' | sed -e 's/ك/ک/' > R/$tablename` + done + echo + rm U*.csv R*.csv + shift +done +echo Program started at $starttime +echo Program ended.. at `date` \ No newline at end of file diff --git a/exe/7z/7-zip.chm b/exe/7z/7-zip.chm new file mode 100644 index 00000000..fd26ca2f Binary files /dev/null and b/exe/7z/7-zip.chm differ diff --git a/exe/7z/7-zip.dll b/exe/7z/7-zip.dll new file mode 100644 index 00000000..f13af69f Binary files /dev/null and b/exe/7z/7-zip.dll differ diff --git a/exe/7z/7-zip32.dll b/exe/7z/7-zip32.dll new file mode 100644 index 00000000..44ccc78a Binary files /dev/null and b/exe/7z/7-zip32.dll differ diff --git a/exe/7z/7z.dll b/exe/7z/7z.dll new file mode 100644 index 00000000..b32d7bf7 Binary files /dev/null and b/exe/7z/7z.dll differ diff --git a/exe/7z/7z.exe b/exe/7z/7z.exe new file mode 100644 index 00000000..37b8514e Binary files /dev/null and b/exe/7z/7z.exe differ diff --git a/exe/7z/7z.sfx b/exe/7z/7z.sfx new file mode 100644 index 00000000..6c1d3d66 Binary files /dev/null and b/exe/7z/7z.sfx differ diff --git a/exe/7z/7zCon.sfx b/exe/7z/7zCon.sfx new file mode 100644 index 00000000..0eca1fd1 Binary files /dev/null and b/exe/7z/7zCon.sfx differ diff --git a/exe/7z/7zFM.exe b/exe/7z/7zFM.exe new file mode 100644 index 00000000..78ef9517 Binary files /dev/null and b/exe/7z/7zFM.exe differ diff --git a/exe/7z/7zG.exe b/exe/7z/7zG.exe new file mode 100644 index 00000000..a55c5a66 Binary files /dev/null and b/exe/7z/7zG.exe differ diff --git a/exe/7z/History.txt b/exe/7z/History.txt new file mode 100644 index 00000000..f76f5b65 --- /dev/null +++ b/exe/7z/History.txt @@ -0,0 +1,1406 @@ +HISTORY of the 7-Zip +-------------------- + +19.00 2019-02-21 +------------------------- +- Encryption strength for 7z archives was increased: + the size of random initialization vector was increased from 64-bit to 128-bit, + and the pseudo-random number generator was improved. +- Some bugs were fixed. + + +18.06 2018-12-30 +------------------------- +- The speed for LZMA/LZMA2 compressing was increased by 3-10%, + and there are minor changes in compression ratio. +- Some bugs were fixed. +- The bug in 7-Zip 18.02-18.05 was fixed: there was memory leak in xz decoder. +- 7-Zip 18.02-18.05 used only one CPU thread for bz2 archive creation. + + +18.05 2018-04-30 +------------------------- +- The speed for LZMA/LZMA2 compressing was increased + by 8% for fastest/fast compression levels and + by 3% for normal/maximum compression levels. +- 7-Zip now shows Properties (Info) window and CRC/SHA results window + as "list view" window instead of "message box" window. +- Some improvements in zip, hfs and dmg code. +- Previous versions of 7-Zip could work incorrectly in "Large memory pages" mode in + Windows 10 because of some BUG with "Large Pages" in Windows 10. + Now 7-Zip doesn't use "Large Pages" on Windows 10 up to revision 1709 (16299). +- The vulnerability in RAR unpacking code was fixed (CVE-2018-10115). +- Some bugs were fixed. + + +18.03 beta 2018-03-04 +------------------------- +- The speed for single-thread LZMA/LZMA2 decoding + was increased by 30% in x64 version and by 3% in x86 version. +- 7-Zip now can use multi-threading for 7z/LZMA2 decoding, + if there are multiple independent data chunks in LZMA2 stream. +- 7-Zip now can use multi-threading for xz decoding, + if there are multiple blocks in xz stream. +- New localization: Kabyle. +- Some bugs were fixed. + + +18.01 2018-01-28 +------------------------- +- 7-Zip now can unpack DMG archives that use LZFSE compression method. +- 7-Zip now doesn't allow update operation for archives that have read-only attribute. +- The BUG was fixed: + extracting from tar with -si switch didn't set timestamps for directories. +- Some bugs were fixed. + + +18.00 beta 2018-01-10 +------------------------- +- 7-Zip now can unpack OBJ/COFF files. +- new -sse switch to stop archive creating, if 7-Zip can't open some input file. +- Some bugs were fixed. + + +17.01 beta 2017-08-28 +------------------------- +- Minor speed optimization for LZMA2 (xz and 7z) multi-threading compression. + 7-Zip now uses additional memory buffers for multi-block LZMA2 compression. + CPU utilization was slightly improved. +- 7-zip now creates multi-block xz archives by default. Block size can be + specified with -ms[Size]{m|g} switch. +- xz decoder now can unpack random block from multi-block xz archives. + 7-Zip File Manager now can open nested multi-block xz archives + (for example, image.iso.xz) without full unpacking of xz archive. +- 7-Zip now can create zip archives from stdin to stdout. +- 7-Zip command line: @listfile now doesn't work after -- switch. + Use -i@listfile before -- switch instead. +- The BUGs were fixed: + 7-Zip could add unrequired alternate file streams to WIM archives, + for commands that contain filename wildcards and -sns switch. + 7-Zip 17.00 beta crashed for commands that write anti-item to 7z archive. + 7-Zip 17.00 beta ignored "Use large memory pages" option. + + +17.00 beta 2017-04-29 +------------------------- +- ZIP unpacking code was improved. +- 7-Zip now reserves file space before writing to file (for extraction from archive). + It can reduce file fragmentation. +- Some bugs were fixed. 7-Zip could crash in some cases. +- Internal changes in code. + + +16.04 2016-10-04 +------------------------- +- The bug was fixed: 7-Zip 16.03 exe installer under Vista didn't create + links in Start / Programs menu. +- Some bugs were fixed in RAR code. + + +16.03 2016-09-28 +------------------------- +- Installer and SFX modules now use some protection against DLL preloading attack. +- Some bugs were fixed in 7z, NSIS, SquashFS, RAR5 and another code. + + +16.02 2016-05-21 +------------------------- +- 7-Zip now can extract multivolume ZIP archives (z01, z02, ... , zip). +- Some bugs were fixed. + + +15.14 2015-12-31 +------------------------- +- 7-Zip File Manager: + - The code for "Open file from archive" operation was improved. + - The code for "Tools/Options" window was improved. + - The BUG was fixed: there was incorrect mouse cursor capture for + drag-and-drop operations from open archive to Explorer window. +- Some bugs were fixed. +- New localization: Yoruba. + + +15.12 2015-11-19 +------------------------- +- The release version. + + +15.11 beta 2015-11-14 +------------------------- +- Some bugs were fixed. + + +15.10 beta 2015-11-01 +------------------------- +- The BUG in 9.21 - 15.09 was fixed: + 7-Zip could ignore some parameters, specified for archive creation operation + for gzip and bzip2 formats in "Add to Archive" window and in command line + version (-m switch). +- Some bugs were fixed. + + +15.09 beta 2015-10-16 +------------------------- +- 7-Zip now can extract ext2 and multivolume VMDK images. +- Some bugs were fixed. + + +15.08 beta 2015-10-01 +------------------------- +- 7-Zip now can extract ext3 and ext4 (Linux file system) images. +- Some bugs were fixed. + + +15.07 beta 2015-09-17 +------------------------- +- 7-Zip now can extract GPT images and single file QCOW2, VMDK, VDI images. +- 7-Zip now can extract solid WIM archives with LZMS compression. +- Some bugs were fixed. + + +15.06 beta 2015-08-09 +------------------------- +- 7-Zip now can extract RAR5 archives. +- 7-Zip now doesn't sort files by type while adding to solid 7z archive. +- new -mqs switch to sort files by type while adding to solid 7z archive. +- The BUG in 7-Zip File Manager was fixed: + The "Move" operation to open 7z archive didn't delete empty files. +- The BUG in 15.05 was fixed: + console version added some text to the end of stdout stream, is -so switch was used. +- The BUG in 9.30 - 15.05 was fixed: + 7-Zip could not open multivolume sfx RAR archive. +- Some bugs were fixed. + + +15.05 beta 2015-06-14 +------------------------- +- 7-Zip now uses new installer. +- 7-Zip now can create 7z, xz and zip archives with 1536 MB dictionary for LZMA/LZMA2. +- 7-Zip File Manager now can operate with alternate file streams at NTFS + volumes via "File / Alternate Streams" menu command. +- 7-Zip now can extract .zipx (WinZip) archives that use xz compression. +- new optional "section size" parameter for BCJ2 filter for compression ratio improving. + Example: -mf=BCJ2:d9M, if largest executable section in files is smaller than 9 MB. +- Speed optimizations for BCJ2 filter and SHA-1 and SHA-256 calculation. +- Console version now uses stderr stream for error messages. +- Console version now shows names of processed files only in progress line by default. +- new -bb[0-3] switch to set output log level. -bb1 shows names of processed files in log. +- new -bs[o|e|p][0|1|2] switch to set stream for output messages; + o: output, e: error, p: progress line; 0: disable, 1: stdout, 2: stderr. +- new -bt switch to show execution time statistics. +- new -myx[0-9] switch to set level of file analysis. +- new -mmtf- switch to set single thread mode for filters. +- The BUG was fixed: + 7-Zip didn't restore NTFS permissions for folders during extracting from WIM archives. +- The BUG was fixed: + The command line version: if the command "rn" (Rename) was called with more + than one pair of paths, 7-Zip used only first rename pair. +- The BUG was fixed: + 7-Zip crashed for ZIP/LZMA/AES/AES-NI. +- The BUG in 15.01-15.02 was fixed: + 7-Zip created incorrect ZIP archives, if ZipCrypto encryption was used. + 7-Zip 9.20 can extract such incorrect ZIP archives. +- Some bugs were fixed. + + +9.38 beta 2015-01-03 +------------------------- +- Some bugs were fixed. + + +9.36 beta 2014-12-26 +------------------------- +- The BUG in command line version was fixed: + 7-Zip created temporary archive in current folder during update archive + operation, if -w{Path} switch was not specified. + The fixed 7-Zip creates temporary archive in folder that contains updated archive. +- The BUG in 9.33-9.35 was fixed: + 7-Zip silently ignored file reading errors during 7z or gz archive creation, + and the created archive contained only part of file that was read before error. + The fixed 7-Zip stops archive creation and it reports about error. +- Some bugs were fixed. + + +9.35 beta 2014-12-07 +------------------------- +- The BUG was fixed: + 7-Zip crashed during ZIP archive creation, if the number of CPU threads was more than 64. +- The BUG in 9.31-9.34 was fixed: + 7-Zip could not correctly extract ISO archives that are larger than 4 GiB. +- The BUG in 9.33-9.34 was fixed: + The option "Compress shared files" and -ssw switch didn't work. +- The BUG in 9.26-9.34 was fixed: + 7-Zip File Manager could crash for some archives open in "Flat View" mode. +- Some bugs were fixed. + + +9.34 alpha 2014-06-22 +------------------------- +- The BUG in 9.33 was fixed: + Command line version of 7-Zip could work incorrectly, if there is relative + path in exclude filename optiton (-x) and absolute path as include filename. +- The BUG in 9.26-9.33 was fixed: + 7-Zip could not open some unusual 7z archives that were created by another + software (not by 7-Zip). +- The BUG in 9.31-9.33 was fixed: + 7-Zip could crash with switch -tcab. + + +9.33 alpha 2014-06-15 +------------------------- +- 7-Zip now can show icons for 7-Zip items in Explorer's context menu. +- "Add to archive" dialog box: + - new options in "Path Mode" + - new option "Delete files after compression" + - new "NTFS" options for WIM and TAR formats: + - Store symbolic links + - Store hard links + - Store alternate data streams + - Store file security +- "Extract" dialog box: + - new optional field to set output folder name + - new option "Eliminate duplication of root folder" + - new option "Absolute pathnames" in "Path Mode". + - new option "Restore file security" (that works for WIM archives only) +- 7-Zip File Manager: + - new "File / Link" dialog box in to create symbolic links and hard links. +- Command line version: + - new -spd switch to Disable wildcard matching for file names + - new -spe switch to Eliminate duplication of root folder for extract archive command + - new -snh switch to store hard links as links (WIM and TAR formats only) + - new -snl switch to store symbolic links as links (WIM and TAR formats only) +- NSIS support was improved. +- The problem was fixed: + The command "extract to \*" with multiple archives could use same + output folder, if archives are placed inside PE (EXE) file. +- The BUG of 9.31-9.32 was fixed: + Command line version for test and extract commands returned the + value 0 as exit code, if it couldn't open archive. +- The BUG was fixed: + 7-Zip could not create archives with anti-items for any archive type, + except of 7z type +- Some bugs were fixed. +- New localization: Mongolian (script). + + +9.32 alpha 2013-12-01 +------------------------- +- 7-Zip now can create multivolume SFX archives in 7z format. + Standalone sfx module now can unpack external 7z archive with name that is + matched to name of sfx module. For example, sfx module renamed to archive.exe + can unpack archive.7z or archive.7z.001 . +- ZIP, NSIS, HFS, AR support was improved. +- 7-Zip now supports files larger than 4 GiB in ISO archives. +- Improved compression ratio in 7z format with maximum or ultra level for + executable files (EXE and DLL) that are larger than 16 MB (improved BCJ2 filter). +- Improved support for file pathnames longer than 260 characters. +- CRC and SHA checksum calculation for files can be called via Explorer's context menu. +- 7-Zip File Manager now also takes into account the numbers in filenames for sorting order. +- 7-Zip File Manager now can use RAM buffers instead of temp files to open + nested archives, if temp file is smaller than 1/4 of RAM size. +- 7-Zip File Manager can open files in "Parser" mode via "Open Archive > #" context + menu command. It shows the list of archives inside file. +- Command line version: + - new -t# switch to open file in "Parser" mode and show the list of archives inside file. + - new -stx{Type} switch to exclude archive type from using. + - -scs switch now supports UTF-16 encoding. + - now it shows time and memory usage statistics at the end of execution. +- The BUGs were fixed: + - 7-Zip 9.30 and early versions created ZIP archives with minor errors + in extra field of headers for directory items, if AES (WinZip-AES) encryption was used. + - 7-Zip could work incorrectly in decompression of more than one + multi-volume archive in one command. + - 7-Zip 9.24 alpha - 9.30 alpha versions could not extract ZIP archives + encrypted with PKWARE-AES method. +- Minimum supported system now is Windows 2000. 7-Zip doesn't work on Windows 95/98/ME. +- New localization: Irish. + + +9.30 alpha 2012-10-26 +------------------------- +- LZMA2 now is default compression method for .7z format. +- 7-Zip now can update WIM archives. +- 7-Zip File Manager now can move files to archives. +- The default encoding for TAR format now is UTF-8. You can use -mcp=1 switch for OEM encoding. +- Command line version: + - new "rn" command to rename files in archive. + - new -sdel switch to delete files after including to archive. + - new -sns switch to store NTFS alternate streams (for WIM format only). + - new -sni switch to store NT security information for files (for WIM format only). + - new -stl switch to set archive timestamp from the most recently modified file. +- Speed optimizations for opening big archives and big disk folders. +- 7-Zip now writes special padding blocks to headers of 7z archives for + faster archive opening. Note that 7-Zip 4.50 - 4.58 contain BUG, + so these old versions can't correctly work with such new 7z archives. +- DMG support was improved +- Some bugs were fixed. +- The BUG in 7-Zip 9.26 alpha - 9.29 alpha versions was fixed. + These alpha versions could not open non-solid 7z archive, if + some files were skipped during creation of that archive. + That problem is also related to 7z archives created in solid mode, + if each solid block contains no more than one file. + Note: 7-Zip skips files that were open for writing by another + application and shows warning in that case. +- New localization: Aragonese. + + +9.25 alpha 2011-09-16 +------------------------- +- LZMA decompression speed was improved. +- "compress and send to email" code was improved to support more email clients. +- New command "h" to calculate hash values CRC-32, CRC-64, SHA-256 or SHA-1 for files on disk. +- New -spf switch to store full file paths including drive letter to archive. + If you use that switch with extract command, please check that file names in archive are correct. +- Some bugs were fixed. + + +9.23 alpha 2011-06-07 +------------------------- +- The format of language files was changed. +- Some bugs were fixed. +- New localization: Karakalpak. + + +9.22 beta 2011-04-18 +------------------------- + +- 7-Zip now uses progress indicator displayed on a taskbar button under Windows 7. +- The BUG in 7-Zip 9.21 beta was fixed: + 7-Zip could ignore some options when you created ZIP archives. + For example, it could use ZipCrypto cipher instead of AES-256. + + +9.21 beta 2011-04-11 +------------------------- +- 7-Zip now can unpack UEFI BIOS files. +- 64-bit version of 7-Zip now includes additional 32-bit shell extension DLL. + So other 32-bit programs can call 64-bit 7-Zip via context menu. +- Now it's possible to associate 7-Zip with file types without Administrator rights. +- New -mf=FilterID switch to specify compression filter. Examples: + 7z a -mf=bcj2 a.7z a.tar + 7z a -mf=delta:4 a.7z a.wav + 7z a -mf=bcj a.tar.xz a.tar +- 32-bit 7-Zip running under 64-bit Windows now can use up to 4 GB of RAM. +- Some bugs were fixed. +- New localizations: Corsican, Kyrgyz, Ligurian. + + +9.20 2010-11-18 +------------------------- +- Some bugs were fixed. + + +9.19 beta 2010-11-11 +------------------------- +- The console version now doesn't show entered password. +- Some bugs were fixed. + + +9.18 beta 2010-11-02 +------------------------- +- 7-Zip now can unpack SquashFS and CramFS filesystem images. +- 7-Zip now can unpack some TAR and ISO archives with incorrect headers. +- New small SFX module for installers (in Extra package). +- Some bugs were fixed. + + +9.17 beta 2010-10-04 +------------------------- +- Disk fragmentation problem for ZIP archives created by 7-Zip was fixed. + + +9.16 beta 2010-09-08 +------------------------- +- 7-Zip now supports files that are larger than 8 GB in TAR archives. +- NSIS support was improved. +- Some bugs were fixed. +- New localizations: Hindi, Gujarati, Sanskrit. + + +9.15 beta 2010-06-20 +------------------------- +- Some bugs were fixed. +- New localization: Tatar. + + +9.14 beta 2010-06-04 +------------------------- +- WIM support was improved. + + +9.13 beta 2010-04-15 +------------------------- +- 7-Zip now stores NTFS file timestamps to ZIP archives. +- New additional "Open archive >" item in context menu allows to select + archive type for some files. +- Some bugs were fixed. +- New localization: Uyghur. + + +9.12 beta 2010-03-24 +------------------------- +- ZIP / PPMd compression ratio was improved in Maximum and Ultra modes. +- The BUG in 7-Zip 9.* beta was fixed: LZMA2 codec didn't work, + if more than 10 threads were used (or more than 20 threads in some modes). + + +9.11 beta 2010-03-15 +------------------------- +- 7-Zip now supports PPMd compression in ZIP archives. +- Speed optimizations in PPMd codec. +- The support for archives in installers was improved. +- Some bugs were fixed. +- New localization: Kazakh. + + +9.10 beta 2009-12-22 +------------------------- +- The BUG in 7-Zip 9.09 beta was fixed: + 7-Zip created incorrect ZIP archives, if ZipCrypto encryption was used. + + +9.09 beta 2009-12-12 +------------------------- +- 7-Zip now can unpack Apple Partition Map (APM) disk images. +- Speed optimizations in AES code for Intel's 32nm CPUs. +- Speed optimizations in CRC calculation code for Intel's Atom CPUs. +- Some bugs were fixed. + + +9.07 beta 2009-08-27 +------------------------- +- It's possible to specify Diff program in options (7-Zip File Manager). +- Some bugs were fixed. + + +9.06 beta 2009-08-17 +------------------------- +- 7-Zip now can unpack MSLZ archives. +- Partial parsing for EXE resources, SWF and FLV. +- Some bugs were fixed. + + +9.04 beta 2009-05-30 +------------------------- +- 7-Zip now can update solid .7z archives. +- 7-Zip now supports LZMA2 compression method. +- 7-Zip now supports XZ archives. +- 7-Zip now can unpack NTFS, FAT, VHD and MBR archives. +- 7-Zip now can unpack GZip, BZip2, LZMA, XZ and TAR archives from stdin. +- 7-Zip now can open/copy/compress disk images (like \\.\c:) from \\.\ folder. +- 7-Zip File Manager now doesn't use temp files to open nested archives + stored without compression. +- New -scrc switch to calculate total CRC-32 during extracting / testing. +- New -scc{WIN|DOS|UTF-8} switch to specify charset for console input/output (default = DOS). +- Some bugs were fixed. + + +4.65 2009-02-03 +------------------------- +- 7-Zip File Manager now can calculate SHA-256 checksum. +- Some bugs were fixed. + + +4.64 2009-01-03 +------------------------- +- The bug in 7-Zip 4.63 was fixed: 7-Zip could not decrypt .ZIP archives + encrypted with WinZip-AES method. + + +4.63 2008-12-31 +------------------------- +- 7-Zip now can unpack ZIP archives encrypted with PKWARE-AES. +- Some bugs were fixed. + + +4.62 2008-12-02 +------------------------- +- Some bugs were fixed. + + +4.61 beta 2008-11-23 +------------------------- +- 7-Zip now supports LZMA compression for .ZIP archives. +- Some bugs were fixed. +- New localization: Sinhala. + + +4.60 beta 2008-08-19 +------------------------- +- Some bugs were fixed. + + +4.59 beta 2008-08-13 +------------------------- +- 7-Zip now can unpack UDF, XAR and DMG/HFS archives. +- 7-Zip File Manager now keeps encryption when you edit encrypted file inside archive. +- 7-Zip File Manager now allows to change current folder from the address bar drop-down list. +- It's allowed to use -t switch for "list" and "extract" commands. +- Some bugs were fixed. +- New localizations: Icelandic, Kurdish Sorani. + + +4.58 beta 2008-05-05 +------------------------- +- Some speed optimizations. +- 7-Zip now can unpack .lzma archives. +- Unicode (UTF-8) support for filenames in .ZIP archives. Now there are 3 modes: + 1) Default mode: 7-Zip uses UTF-8, if the local code page doesn't contain required symbols. + 2) -mcu switch: 7-Zip uses UTF-8, if there are non-ASCII symbols. + 3) -mcl switch: 7-Zip uses local code page. +- Now it's possible to store file creation time in 7z and ZIP archives (-mtc switch). +- 7-Zip now can unpack multivolume RAR archives created with + "old style volume names" scheme and names *.001, *.002, ... +- Now it's possible to use -mSW- and -mSW+ switches instead of -mSW=off and -mSW=on +- Some bugs were fixed. +- New localizations: Punjabi (Indian), Pashto. + + +4.57 2007-12-06 +------------------------- +- The BUG in command line version was fixed: -up3 switch + could work incorrectly. + + +4.56 beta 2007-10-24 +------------------------- +- Some bugs were fixed. + + +4.55 beta 2007-09-05 +------------------------- +- Some bugs were fixed. + + +4.54 beta 2007-09-04 +------------------------- +- Decompression speed was increased. + + +4.53 beta 2007-08-27 +------------------------- +- "Test" and "Info" buttons now work for open archives. +- The bug in 7-Zip 4.48 - 4.52 beta was fixed: + 7-Zip could create .ZIP archives with broken files. +- Some bugs were fixed. + + +4.52 beta 2007-08-03 +------------------------- +- 7-Zip now can unpack Compound files (msi, doc, ...). +- Some bugs were fixed. + + +4.51 beta 2007-07-25 +------------------------- +- Bug was fixed: 7-Zip 4.50 beta could not open some .7z archives. + + +4.50 beta 2007-07-24 +------------------------- +- New switch for command line version: + -ssc[-] enables/disables case-sensitive mode for file names. +- Speed optimizations for AES encryption. +- Some bugs were fixed. + + +4.49 beta 2007-07-11 +------------------------- +- 7-Zip now can unpack WIM archives. +- 7-Zip now replaces incorrect characters in filenames during extracting. + + +4.48 beta 2007-06-26 +------------------------- +- Encryption strength for .7z format was increased. + Now it uses random initialization vectors. +- Some bugs were fixed. + + +4.47 beta 2007-05-27 +------------------------- +- Bugs of 7-Zip 4.46 beta were fixed: BZip2 could work incorrectly. + + +4.46 beta 2007-05-25 +------------------------- +- New fast compression mode for Deflate method in Zip and GZip. +- New "Compress shared files" option in GUI and -ssw switch. +- Some bugs were fixed. +- New localization: Norwegian Nynorsk. + + +4.45 beta 2007-04-17 +------------------------- +- Now it's possible to specify the size of solid block and the number + of CPU threads in "Add to archive" dialog box. +- Default dictionary size was increased: Normal: 16 MB, Max: 32 MB. +- Speed optimizations. +- Benchmark was improved (new "b" command in command line version). +- The number of DLL files was reduced. +- Now it's possible to associate 7-zip with combined types like .tbz2 +- switch -mhcf=off is not supported now. +- If -t{Type} switch is not specified, 7-Zip now uses extension of archive to + detect the type of archive. +- Some bugs were fixed. +- New localization: Welsh. + + +4.44 beta 2007-01-20 +------------------------- +- Speed optimizations for LZMA, Deflate, BZip2 and unRAR. +- 7-Zip now supports file pathnames longer than 260 characters. +- Some bugs were fixed. +- New localizations: Bangla, Bashkir, Nepali. + + +4.43 beta 2006-09-15 +------------------------- +- 7-Zip now can use multi-threading mode for compressing to .ZIP archives. +- ZIP format supporting was improved. +- 7-Zip now supports WinZip-compatible AES-256 encryption for .ZIP archives. +- New context menu items for .ZIP archives creating. +- 7-Zip now uses order list (list of extensions) for files sorting for compressing + to .7z archives. It can slightly increase compression ratio in some cases. +- 7-Zip now restores modification time of folders during .7z archives extracting. +- Some bugs were fixed. +- New localizations: Armenian, Marathi. + + + +4.42 2006-05-14 +------------------------- +- Compressing speed and Memory requirements were increased. + Default dictionary size was increased: Fastest: 64 KB, Fast: 1 MB, + Normal: 4 MB, Max: 16 MB, Ultra: 64 MB. +- BZip2 compressing / decompressing now can work in multi-threading mode +- Multi-threading mode now is default for multi-processor systems +- 64-bit version now supports 1 GB dictionary +- 7z/LZMA now can use only these match finders: HC4, BT2, BT3, BT4 +- Compression ratio in Zip/GZip/Deflate in Ultra mode was increased +- 7-Zip now can unpack ISO archives and some installers created by NSIS +- Optional "Flat View" mode in 7-Zip File Manager +- 7-Zip File Manager now can calculate CRC checksums for files +- -x switch with relative paths now affects files specified with absolute paths +- New switch for 7za.exe (console version): -slt. + "l" (list) command with -slt shows technical information for archive. +- New switch: -scs{WIN|DOS|UTF-8} specifies charset for list files. + Default charset for list files is UTF-8 now. +- Some bugs were fixed +- New localizations: Albanian, Kurdish + + +4.32 2005-12-09 +------------------------- +- Bug was fixed: 7-Zip 4.31 didn't work in Windows 95 + + +4.31 2005-12-04 +------------------------- +- Small changes +- New localization: Basque + + +4.30 beta 2005-11-18 +------------------------- +- Files 7zFMn.exe, 7zGn.exe, 7-zipn, 7za.exe, 7zC.sfx were removed from 7-zip package +- 7-Zip now uses uncompressed SFX: 7z.sfx +- Sfx modules 7z.sfx and 7zCon.sfx now use msvcrt.dll +- Speed optimizations in LZMA maximum/ultra compressing. +- LZMA now supports word size up to 273 +- 7-Zip now reduces dictionary size for LZMA, if you compress files + smaller than specified dictionary size. +- 7-Zip now can use large memory pages: + GUI: 7-Zip File Manager / Options / Settings / Use large memory pages. + Command line version: -slp switch. + This feature allows to increase speed of compressing. + But 7-Zip can make some pause at starting of compressing for allocating large pages. + Also Task Manager doesn't show real memory usage of program, if 7-Zip uses large pages. + This feature works only on Windows 2003 / XP x64 / Vista. + Also you must have administrator's rights for your system. + Recommended size of RAM: 1 GB or more. + To install this feature you must run 7-Zip File Manager at least once, + close it and reboot system. +- Some bugs were fixed + + +4.29 beta 2005-09-28 +------------------------- +- Bug was fixed: 7-Zip 4.28 beta worked incorrectly in Windows 95/98/Me + + +4.28 beta 2005-09-27 +------------------------- +- Bug was fixed: 7-Zip 4.27 beta created incorrect multivolume archives. +- "Duplicate filename" collision problem between names with ligatures was fixed. + + +4.27 beta 2005-09-21 +------------------------- +- 7-Zip can unpack CHM/HXS (MS HTML HELP) archives +- 7-Zip can unpack multivolume CAB archives +- Now 7-Zip deletes files to the Recycle Bin by default. + Shift+Delete deletes files permanently. +- Some bugs were fixed +- New localization: Tatarish + + +4.26 beta 2005-08-05 +------------------------- +- LZH format support (extracting only) +- Some bugs were fixed +- New localization: Ido + + +4.25 beta 2005-07-31 +------------------------- +- 7-Zip now doesn't interrupt the compressing when it can not + find specified file as in version 4.24 beta. It just shows warning. +- 7-Zip now supports standard selection mode in the file list +- Some bugs were fixed + + +4.24 beta 2005-07-06 +------------------------- +- 7-Zip now supports right-click Drag and Drop in Explorer +- Command line version now supports short file names (like FILENA~1.TXT) +- If there are no wildcard names and there is no -r switch in command line, + 7-Zip now checks that specified files exist on disk before compressing. +- Some bugs were fixed + + +4.23 2005-06-29 +------------------------- +- Drag and Drop support +- 7-Zip File Manager now can copy files from one archive to another +- Some bugs were fixed +- New localizations: Extremaduran, Malay + + +4.20 2005-05-30 +------------------------- +- No changes + + +4.19 beta 2005-05-21 +------------------------- +- BZip2 code was rewritten. Now it supports 3 modes: Normal, Maximum and + Ultra. In Normal mode it compresses almost as original BZip2 compressor. + Compression ratio in Maximum and Ultra modes is 1-3% better for some files, + but Maximum Mode is about 3 times slower and Ultra Mode is about 8 times + slower than Normal mode. +- Console version now prints all messages to stdout by default, + and if -so switch is specified, 7-Zip prints messages to stderr. +- Some bugs were fixed +- New localizations: Azeri, Georgian + + +4.18 beta 2005-04-19 +------------------------- +- Bug in v4.17 beta was fixed: 7-Zip File Manager could crash + after some operations with archives + + +4.17 beta 2005-04-18 +------------------------- +- To increase protection from viruses, 7-Zip now does not open + files with more than 4 continuous spaces in the name. + And 7-Zip changes such long spaces in name to " ... " in the file list. +- Code size optimization +- Some files were moved from main package to extra package: + - Plugin for FAR Manager + - SFX modules for installers (7zS.sfx and 7zSD.sfx) +- New localizations: Asturian, Indonesian + + +4.16 beta 2005-03-29 +------------------------- +- Speed optimization (5%) for 7z / LZMA +- 7za.exe now supports .Z archives +- -r- switch in command line now is default for all commands +- Some bugs were fixed +- New localization: Uzbek + + +4.15 beta 2005-01-25 +------------------------- +- Z format supporting (extracting only) +- 7-Zip now can extract ZIP archives compressed with "Shrink" method +- 7-Zip now doesn't interrupt the compressing when it can not open file. + 7-Zip just skips that file and shows warning. +- Some bugs were fixed +- New localization: Frisian + + +4.14 beta 2005-01-11 +------------------------- +- 7-Zip installer was created with NSIS. + Now it installs 7-Zip for all users (under Windows 2000/XP). +- Now 7-Zip can create multivolume archives + (switch -v for command line) +- Some bugs were fixed +- New localizations: Breton, Farsi + + +4.13 beta 2004-12-14 +------------------------- +- Switch "--" stops switches parsing +- Some bugs were fixed + + +4.12 beta 2004-11-18 +------------------------- +- Bug in v4.11 beta was fixed: + 7-Zip created incorrect ZIP archives if file size was + from 3.75 GB to 4 GB. + + +4.11 beta 2004-11-16 +------------------------- +- 7-Zip now shows file names during compressing/decompressing +- 7-Zip now supports Zip64 extension of ZIP format. So now it's + possible to compress files bigger than 4 GB to ZIP archives. +- Some bugs were fixed +- New localization: Galician + + +4.10 beta 2004-10-21 +------------------------- +- Bugs in v4.0* were fixed: + - Some commands in command line with "-r" switch worked incorrectly, + so 7-zip could skip some files during compressing + - Some other bugs were fixed +- Small internal changes + + +4.09 beta 2004-10-05 +------------------------- +- Bugs in v4.0* were fixed: + - Renaming inside archives didn't work or worked incorrectly + - GUI SFX didn't show extracting dialog at start +- Small fixes in 7-Zip GUI (7zG.exe) + + +4.08 beta 2004-10-04 +------------------------- +- Bug in installer for v4.07 was fixed: when rebooting + is required, it rebooted without asking user +- Small fixes in 7-Zip GUI (7zG.exe) + + +4.07 beta 2004-10-03 +------------------------- +- Big amount of code was changed in this beta version. + So don't use it for important data compressing. + And test archive after compressing. + +- Unified command line interface to GUI and console versions +- 7-Zip now can extract or test several archives in one command +- 7-Zip now doesn't interrupt the compressing when file is locked by + other application. 7-Zip just skips that file and shows warning. + Note: previous versions of 7-Zip had bug, so they can not unpack + non-solid and some solid 7z archives with such skipped files. +- Command line interface was changed: + - now it's possible to use absolute pathnames + - syntax simplification: + was: 7z a a Folder1\* Folder2\* -r + now: 7z a a Folder1 Folder2 + - now it's possible to use complex wildcard commands, like *\*111*\* +- More smart detection of archive type for files with unusual + file name extensions +- Supporting for RAR archives with encrypted headers +- CPIO format supporting was improved +- For GZip and BZip2 formats you can: + - Compress from stdin (-si switch) + - Compress to stdout (-so switch) + - Extract to stdout (-so switch) +- 7-Zip File Manager: + - Split and Combine commands + - new list view options: Full row select, Show grid lines +- Internal reconstruction +- Some bugs were fixed +- New localizations: Friulian, Macedonian, Mongolian, Tamil, Thai + + +3.13 2003-12-11 +------------------------- +- Some small bugs were fixed + + +3.12 2003-12-10 +------------------------- +- Now you can select compression method, dictionary size + and word size in "Add to archive" dialog box. Also it + shows memory usage. +- 7-Zip File Manager now contains toolbars. +- New "Benchmark" command in 7-Zip File Manager. + It measures compressing and decompressing speeds and + shows rating values. +- Some bugs were fixed. + + +3.11 2003-10-06 +------------------------- +- 7-zip now use limitations for solid block size + for increasing the speed of random file decompressing: + - in Store mode: 0 B + - in Fast mode: 16 MB + - in Normal mode: 256 MB + - in Maximum mode: 1 GB + - in Ultra mode: 4 GB +- 7z.exe, 7za.exe and SFX modules now support Unicode + file names under Windows NT/2000/XP/2003. + 7zn.exe and 7zan.exe were removed from package. +- Some bugs were fixed +- New localization: Afrikaans + + +3.10 2003-09-27 +------------------------- +- Drag-and-Drop from external application +- GUI version (7zG.exe) can compress files with absolute paths +- Compression dialog doesn't suggest bzip2 and gzip2 types when + there are more than one selected file +- Optional auto renaming for existing files during extraction + in command line version (-aot switch). +- Some bugs were fixed + + +3.09.02 2003-09-20 +------------------------- +- Optional limitation for solid block size for increasing + the speed of random file decompressing (-ms switch) + + +3.09.01 beta 2003-09-06 +------------------------- +- Automatic compression filter for executable files: + dll, exe, ocx, sfx, sys, (-mf switch) +- Compression levels in 7z now are: + - Fast: 32 KB dictionary, BCJ filter + - Normal: 2 MB dictionary, BCJ filter + - Maximum: 8 MB dictionary, BCJ filter, max settings + - Ultra: 32 MB dictionary, BCJ2 filter, max settings +- Updating solid 7z archives now is supported, if it doesn't + require repacking solid blocks +- -mhcf switch for 7z format now is default +- Some bugs were fixed + + +3.08.04 beta 2003-08-24 +------------------------- +- Favorites menu in 7-Zip File Manager +- Some bugs were fixed + + +3.08.03 beta 2003-08-21 +------------------------- +- Automatic adding of extension to archive name in Compress Dialog +- Some bugs in previous 3.08.* versions were fixed: + - Storing columns width inside archives in File Manager + - Opening archive inside archive + - Quotes in list files in console version + + +3.08.02 beta 2003-08-20 +------------------------- +- Some bugs were fixed + + +3.08 beta 2003-08-19 +------------------------- +- Compress dialog: + - Supporting fast compressing mode (-mx=1 switch) + - Multi-threading option for Multi-Processor systems + or Pentium 4 with Hyper-Threading + - Encrypt file names option +- New context menu items: + - Extract here + - Extract to + - Compress and email +- Internal reconstruction, registry using was reduced +- New localization: Esperanto + + +2.30 Beta 32 2003-05-15 +------------------------- +- New features in compressing / decompressing window. +- "Show password" option. +- Some other small changes. +- New localization: Valencian. + + +2.30 Beta 31 2003-04-29 +------------------------- +- Some bugs were fixed. + + +2.30 Beta 30 2003-04-19 +------------------------- +- 7-Zip File Manager: + - Showing .. item. + - 1/2 Panels mode switching (F9). +- Supporting Bzip2 compression in ZIP archives. +- Some bugs were fixed. +- Some optimization recompiling for reducing code size. + + +2.30 Beta 29 2003-04-07 +------------------------- +- 7-Zip File Manager: + - "7-Zip" and "System" submenus in "Files" menu. + - Path history and "Browse" button in "Copy" dialog. +- RAR supporting was improved. +- Some bugs were fixed. +- Small changes in LZMA code. +- New localizations: Hebrew, Vietnamese. + + +2.30 Beta 28 2003-02-16 +------------------------- +- Some bugs were fixed: + - Updating 7z archives that are larger than 4 GB. + - Using anti-items in 7z format. + - Compressing empty files with password to zip format. +- In max mode 7z now uses 8 MB dictionary instead of 4 MB. +- 7-Zip File Manager: + - Supporting file comments: Ctrl-Z. + - New key alias for folder bookmarks: [Shift]+Alt+Number. + + +2.30 Beta 27 2003-01-24 +------------------------- +- Two BUGs in two previous beta versions (Beta 25 and Beta 26) + were fixed: + 1. Incorrect compressing to non-solid 7z archive + when files have some very big sizes: + 4 GB, 8 GB, 12 GB, 16 GB, ... + 2. Incorrect percent showing in 7z compressing + when files are bigger than 4 GB. +- Supporting multivolume RAR and SPLIT archives. +- Supporting DEB archives. +- Supporting old version of CPIO format. +- Some bugs were fixed. +- New localizations: Korean, Swedish. + + +2.30 Beta 26 2003-01-12 +------------------------- +- Supporting Deflate64 method in Zip archives. +- Supporting Rar 1.50 archives. +- Some bugs were fixed. + + +2.30 Beta 25 2003-01-02 +------------------------- +- Encryption feature for 7z format (AES-256). +- New optional archive header compressing mode (-mhcf). +- Archive headers now always are compressed with LZMA method. +- Updating non-solid 7z archives without -ms=off now is allowed. +- Folder creating and item renaming inside archive now is supported. +- Supporting encrypted Rar3 archives. +- Supporting Unicode names in Rar3 archives. +- Some bugs were fixed. +- New localizations: Lithuanian, Voro. + + +2.30 Beta 24 2002-11-01 +------------------------- +- Some internal reconstructions. +- -m switch syntax was slightly changed. +- Some bugs were fixed. +- New localizations: Catalan, Norwegian, Romanian. + + +2.30 Beta 23 2002-09-07 +------------------------- +- Encryption feature for zip format. +- Percent indicating for some operations. +- Some bugs were fixed. + + +2.30 Beta 22 2002-08-31 +------------------------- +- New program: 7-Zip File Manager. +- Command line version now doesn't allow absolute paths + for compressing files. +- New localizations: Belarusian, Greek. +- Bug in FAR plugin was fixed: + Incorrect updating when archive has no explicit + directory items for file items. +- Some bugs were fixed. + + +2.30 Beta 21 2002-07-08 +------------------------- +- RAM requirements for LZMA (7z) compression were reduced. +- Small bug in FAR plugin was fixed. + + +2.30 Beta 20 2002-07-01 +------------------------- +- RAM requirements for LZMA (7z) decompression were reduced. +- New localization: Turkish. +- Some bugs were fixed. + + +2.30 Beta 19 2002-04-11 +------------------------- +- Supporting RAR 3.0 archives. +- New localizations: Danish, Ukrainian. + + +2.30 Beta 18 2002-03-25 +------------------------- +- Compressing speed in 7z format was slightly increased. +- New localizations: Estonian, Finnish. +- Some bugs were fixed. + + +2.30 Beta 17 2002-03-03 +------------------------- +- Supporting ARJ archives. +- New localization: Chinese Simplified. + + +2.30 Beta 16 2002-02-24 +------------------------- +- Supporting RPM and CPIO archives. +- New fast compression mode for LZMA: -m0a=0. +- New match finders for LZMA: bt4b, hc3, hc4. +- Some bugs were fixed. + + +2.30 Beta 15 2002-02-17 +------------------------- +- Compression ratio in 7z was slightly improved. +- New localization: Dutch. + + +2.30 Beta 14 2002-02-10 +------------------------- +- Speed optimization for multiprocessor computers (-mmt switch). +- New localizations: Czech, Japanese, Polish. +- Some bugs were fixed. + + +2.30 Beta 13 2002-01-31 +------------------------- +- New SFX module for installers. +- New match finder for LZMA: bt3. +- New localizations: Portuguese, Portuguese Brazil, Serbo-Croatian. +- Some bugs were fixed. + + +2.30 Beta 12 2002-01-16 +------------------------- +- Bug was fixed: memory leak in Beta 11. +- New localization: Hungarian. + + +2.30 Beta 11 2002-01-15 +------------------------- +- Archive testing feature for GUI version. +- Now 7-Zip can use more than 256 MB of RAM in all Windows versions. +- New localizations: Bulgarian, Chinese Traditional, Latvian, Slovak. +- Some bugs were fixed. + + +2.30 Beta 10 2002-01-11 +------------------------- +- Bugs were fixed: + - Updating 7z archives in Beta 8 and 9 didn't work. + - Unicode version in Beta 9 didn't work in Windows NT4. + - Some other bugs were fixed. +- New localizations: Arabic, French, Italian, Slovenian, Spanish. + + +2.30 Beta 9 2002-01-08 +------------------------- +- Program localization: English, German, Russian. +- Additional optimized versions of programs + for Windows NT4/2000/XP. +- Two new match finders for LZMA: pat3h and pat4h. +- Some bugs were fixed. + + +2.30 Beta 8 2001-12-21 +------------------------- +- 7-Zip now supports some zip archives that were not + supported by previous versions. +- 7-Zip now supports new state (-uw switch) for cases + when 7-Zip can not detect whether file is newer or the same. +- Supporting anti-items in 7z format for incremental + update (-u with action #3). +- Some bugs were fixed. + + +2.30 Beta 7 2001-11-04 +------------------------- +- BCJ2: new converter for x86 code. +- Supporting tar archives with very long file names + (GNU extension to 'tar' format). +- Supporting multistream coders in 7z (-mb switch). +- More compressing parameters for zip and gzip + in console version (-m switch). +- Solid compressing option in Windows version. +- Compressing parameters option in Windows version. +- Auto renaming existing files feature for + extracting files. +- Overwrite mode switch for extracting (-ao). +- Some bugs were fixed. + + +2.30 Beta 6 2001-10-13 +------------------------- +- Supporting 7z format in MultiArc plugin for FAR Manager. +- Some bugs were fixed. + + +2.30 Beta 5 2001-10-02 +------------------------- +- Creating SFX archives from explorer. +- 7zWin.sfx: Windows version of SFX module. +- Auto adding .exe extension to SFX archive name. +- 7za.exe now supports 7z, bzip2, gzip, tar, zip. +- Some bugs were fixed. + + +2.30 Beta 4 2001-09-15 +------------------------- +- Self extract capability for 7z format. +- 7z archive format is default for 7z.exe and 7za.exe. +- 7z in default mode now uses bt234 match finder + and solid compression. +- 7z in maximum mode (-mx) now uses 4MB dictionary. + + +2.30 Beta 3 2001-09-10 +------------------------- +- Bug was fixed: decompressing .7z solid archives + containing empty files. +- new 7za.exe: standalone command line version + (only for 7z format). +- Speed of compressing to Deflate format (zip, gzip) + was slightly increased. + + +2.30 Beta 2 2001-08-30 +------------------------- +- Supporting the new 7z format with high compression ratio. +- -bd (Disable percentage indicator) switch in + console version. +- Bug in console version was fixed: + previous versions incorrectly execute compression + commands with non-recursive wildcards in combination + with subfolders. +- Some other bugs were fixed. + + +2.30 Beta 1 2001-05-07 +------------------------- +- Speed of reading of archive contents was increased. +- Bug was fixed: incorrect showing file names with + national charsets in some zip archives. +- Now it is possible to compress files larger than 4GB + to GZip archives. + + +2.24 2001-03-21 +------------------------- +- Bugs in GZip and Cab decoders were fixed. + + +2.23 2001-03-04 +------------------------- +- Opening archive items in Explorer. +- Context menu for archive items in Explorer. +- Automatic adding extension to archive name in console version. +- Some bugs were fixed. + + +2.22 2001-01-21 +------------------------- +- Supporting Zip archives containing more than 65535 files. +- Speed of Plugin for Explorer was increased. +- Searching start position of archive now is limited by + first 1MB part of file. +- Some bugs were fixed. +- Packet now doesn't contain 7zip.exe, far7zip.reg and + far7zip2.reg files. There is new far7z.reg file. + + +2.21 2000-12-21 +------------------------- +- FAR Plugin was improved: + + - Showing process box during opening archives. + - Viewing properties of file by Ctrl-A. + - Alt-F6 in archive now immediately extracts selected files + to current directory. + +- Some bugs were fixed: + + - Entering to archive's subfolders in Explorer by clicking + items in main window didn't work under Windows ME/2000. + - Decompressing solid Rar archives sometimes gave error. + - Console version 7z.exe during list operation incorrectly + showed file names with national (non-english) charsets. + - FAR Plugin didn't execute some operations. + - Showing percents during extracting ZIP archives sometimes + was incorrect. + + +2.20 2000-11-20 +------------------------- +- Supporting BZip2 and Cab. +- New program architecture with external + compression and cryptographic modules. +- Decryption support (Rar and Zip). +- New console client. +- Some bugs were fixed. + + +2.11 2000-06-15 +------------------------- +- Bugs were fixed: + + - FAR Plugin incorrectly processed + names of subdirectories that use national + (non-english) charsets. + - gzip plugin could not compress empty files. + + +2.10 2000-05-16 +------------------------- +- First level 7-Zip Plugin for FAR Manager. +- GUI version with integration to Windows Shell. +- Compression and decompressing GZip and TAR formats. +- Decompression RAR. +- Install & Uninstall support. +- Some bugs were fixed. + + +2.01 1999-09-19 +------------------------- +- Small bug was fixed. +- Compression ratio was improved for some files. + + +2.00 1999-07-18 +------------------------- +- Release. +- Big bug was fixed: previous versions incorrectly worked + during compressing with files that were referred by + direct(without wildcards) paths, containing subdirs parts. +- Compression and decompression speed were improved. +- -mx switch (maXimize compression) was added. +- Small bugs were fixed. + + +2.00 Beta 1 1999-01-02 +------------------------- +- Original beta version. + + +End of document diff --git a/exe/7z/License.txt b/exe/7z/License.txt new file mode 100644 index 00000000..b6ff3de5 --- /dev/null +++ b/exe/7z/License.txt @@ -0,0 +1,90 @@ + 7-Zip + ~~~~~ + License for use and distribution + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + 7-Zip Copyright (C) 1999-2019 Igor Pavlov. + + The licenses for files are: + + 1) 7z.dll: + - The "GNU LGPL" as main license for most of the code + - The "GNU LGPL" with "unRAR license restriction" for some code + - The "BSD 3-clause License" for some code + 2) All other files: the "GNU LGPL". + + Redistributions in binary form must reproduce related license information from this file. + + Note: + You can use 7-Zip on any computer, including a computer in a commercial + organization. You don't need to register or pay for 7-Zip. + + + GNU LGPL information + -------------------- + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You can receive a copy of the GNU Lesser General Public License from + http://www.gnu.org/ + + + + + BSD 3-clause License + -------------------- + + The "BSD 3-clause License" is used for the code in 7z.dll that implements LZFSE data decompression. + That code was derived from the code in the "LZFSE compression library" developed by Apple Inc, + that also uses the "BSD 3-clause License": + + ---- + Copyright (c) 2015-2016, Apple Inc. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder(s) nor the names of any contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ---- + + + + + unRAR license restriction + ------------------------- + + The decompression engine for RAR archives was developed using source + code of unRAR program. + All copyrights to original unRAR code are owned by Alexander Roshal. + + The license for original unRAR code has the following restriction: + + The unRAR sources cannot be used to re-create the RAR compression algorithm, + which is proprietary. Distribution of modified unRAR sources in separate form + or as a part of other software is permitted, provided that it is clearly + stated in the documentation and source comments that the code may + not be used to develop a RAR (WinRAR) compatible archiver. + + + -- + Igor Pavlov diff --git a/exe/7z/descript.ion b/exe/7z/descript.ion new file mode 100644 index 00000000..914077b9 --- /dev/null +++ b/exe/7z/descript.ion @@ -0,0 +1,14 @@ +7-zip.chm 7-Zip Help +7-Zip.dll 7-Zip Plugin +7-Zip32.dll 7-Zip Plugin 32-bit +7z.dll 7-Zip Engine +7z.exe 7-Zip Console +7z.sfx 7-Zip GUI SFX +7zCon.sfx 7-Zip Console SFX +7zFM.exe 7-Zip File Manager +7zg.exe 7-Zip GUI +descript.ion 7-Zip File Descriptions +history.txt 7-Zip History +Lang 7-Zip Translations +license.txt 7-Zip License +readme.txt 7-Zip Overview diff --git a/exe/7z/readme.txt b/exe/7z/readme.txt new file mode 100644 index 00000000..b3dc5711 --- /dev/null +++ b/exe/7z/readme.txt @@ -0,0 +1,51 @@ +7-Zip 19.00 +----------- + +7-Zip is a file archiver for Windows. + +7-Zip Copyright (C) 1999-2019 Igor Pavlov. + +The main features of 7-Zip: + + - High compression ratio in the new 7z format + - Supported formats: + - Packing / unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM. + - Unpacking only: AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, + IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, + RPM, SquashFS, UDF, UEFI, VDI, VHD, VMDK, XAR and Z. + - Fast compression and decompression + - Self-extracting capability for 7z format + - Strong AES-256 encryption in 7z and ZIP formats + - Integration with Windows Shell + - Powerful File Manager + - Powerful command line version + - Localizations for 85 languages + + +7-Zip is free software distributed under the GNU LGPL (except for unRar code). +Read License.txt for more information about license. + + + This distribution package contains the following files: + + 7zFM.exe - 7-Zip File Manager + 7-zip.dll - Plugin for Windows Shell + 7-zip32.dll - Plugin for Windows Shell (32-bit plugin for 64-bit system) + 7zg.exe - GUI module + 7z.exe - Command line version + 7z.dll - 7-Zip engine module + 7z.sfx - SFX module (Windows version) + 7zCon.sfx - SFX module (Console version) + + License.txt - License information + readme.txt - This file + History.txt - History of 7-Zip + 7-zip.chm - User's Manual in HTML Help format + descript.ion - Description for files + + Lang\en.ttt - English (base) localization file + Lang\*.txt - Localization files + + +--- +End of document diff --git a/exe/ReadMe.md b/exe/ReadMe.md new file mode 100644 index 00000000..bc48362d --- /dev/null +++ b/exe/ReadMe.md @@ -0,0 +1,13 @@ +# exe + +We keep executable files here that are used in various parts of programs. + +Currently this folder holds these files/folders: + +Folder | Description +-------|------------- +7z | 7-zip dll and exe files to unpack RAR files +unrar | UnRAR executable to unpack RAR files + + +for each group of files in each folder see the License file inside folder. diff --git a/exe/unrar/UnRAR.exe b/exe/unrar/UnRAR.exe new file mode 100644 index 00000000..329c48e1 Binary files /dev/null and b/exe/unrar/UnRAR.exe differ diff --git a/exe/unrar/license.txt b/exe/unrar/license.txt new file mode 100644 index 00000000..2c21c446 --- /dev/null +++ b/exe/unrar/license.txt @@ -0,0 +1,34 @@ + ****** ***** ****** UnRAR - free utility for RAR archives + ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ****** ******* ****** License for use and distribution of + ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ** ** ** ** ** ** FREEWARE version + ~~~~~~~~~~~~~~~~ + + The UnRAR utility is freeware. This means: + + 1. All copyrights to RAR and the utility UnRAR are exclusively + owned by the author - Alexander Roshal. + + 2. The UnRAR utility may be freely distributed. It is allowed + to distribute UnRAR inside of other software packages. + + 3. THE RAR ARCHIVER AND THE UnRAR UTILITY ARE DISTRIBUTED "AS IS". + NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT + YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, + DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING + OR MISUSING THIS SOFTWARE. + + 4. Neither RAR binary code, WinRAR binary code, UnRAR source or UnRAR + binary code may be used or reverse engineered to re-create the RAR + compression algorithm, which is proprietary, without written + permission of the author. + + 5. If you don't agree with terms of the license you must remove + UnRAR files from your storage devices and cease to use the + utility. + + Thank you for your interest in RAR and UnRAR. + + + Alexander L. Roshal \ No newline at end of file